一个基本的dataTable示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
/**
* 异步返回数据
*/
var loadActivitys = function () {
//对layer.load的封装
var layerIndex = blockScreen(20000, function () {
});
var handleAjaxData = function (ajaxData) {
var res_code = ajaxData.res_code;
var res_info = ajaxData.res_info;
if (typeof res_code == "undefined") {
alertError("请求错误!");
return;
}
if (res_code == -1) {
alertError(res_info);
return;
}
//交给dataTable的数据源,数组列表
var tableDataArray = [];
if (res_code == 0) {
$.each(ajaxData.res_data, function (i, obj) {
//处理数据,形成一个字符串数组
var objEle=[];
tableDataArray.push(objEle);
});
$("#table").dataTable({
"language": {
"url": "/static/datatable/Chinese.txt"
},
"data": tableDataArray,
//绑定列
"columns": [
{"title": "列1", "class": "center needCut", "width": "15%"},
{"title": "列2", "class": "center","width": "13%"},
{"title": "列3", "class": "center needCut","width": "10%"},
{"title": "列4", "class": "center needCut","width": "20%"}
],
"initComplete": function () {
//初始化完成之后的方法调用
doAfter();
},
"autoWidth": false,
//dataTable不允许多次初始化(即dataTable()方法),
//这里设置每次初始化之前销毁,以方便处理,如果有纯客户端的
//异步刷新表格局部操作不可以如此
"destroy": true,
//分页选项,dataTable的服务器模式默认将排序,分页搜索等操作全部提交到后台
//不太灵活,一般自己分页就可以,充分利用客户端功能
"pagingType": "full_numbers",//分页样式
"pageLength": 25,//分页大小
"searching": false,//是否显示搜索框,默认客户端搜索
"paging": false,//自己分页
"info": false//是否显示详细信息,"共多少项,当前显示XXX"
});
//处理分页
var pageArgs=ajaxData.PAGE_ARGS;
var pageCount=pageArgs.pageCount;
var currentPage=pageArgs.currentPage;
var pageRange=pageCount<20?pageCount:20;
//这里使用layui的分页组件,简单实用
lpage($("#pager"),pageCount,pageRange,currentPage,function(curr,first){
//点击跳转执行的函数
if(first){
//首次加载
return;
}
});
}
//layer.close的封装
unBlockScreen(layerIndex);
};
//jquery.ajax的封装,将数据传给handleAjaxData函数
ajaxCallback("xxxaction", $("#form").serialize(), "获取数据失败", handleAjaxData);
};

Resource Rules

@Resource应用在字段上,则注入规则是:

  • a.先使用字段名字匹配bean,查找到bean则注入,如果类型不匹配则此时有异常,注入失败
  • b.如果字段名字没有匹配到Bean则spring会尝试采用字段类型匹配,如果找打bean则注入,如果字段类型是接口则有可能会匹配到多个类型,则会抛出匹配到多个bean的异常.注入失败.

@Resource应用在setter上(应用到属性),则注入规则是:

  • a.先使用属性名字匹配bean,查找到bean则注入,如果类型不匹配则此时有异常,注入失败
  • b.如果属性名字没有匹配到Bean则spring会尝试采用属性参数类型匹配,如果找打bean则注入,如果属性参数类型是接口则有可能会匹配到多个类型,则会抛出匹配到多个bean的异常.注入失败.
  • 注意是属性的参数类型,并不是属性的类型,注意区别

    小结

  • a.名称——>b.类型或参数类型(属性时).

一次打包的时候,代码异常,excel模板文件损坏,后来发现由于pom文件中开启了过滤resources的配置,
此配置开启则打包过程中maven将pom中的定义的变量名称原文替换resources中的变量占位符${var},其实意义不大,还容易造成错误
此功能隐蔽性强,错误不易察觉,不建议使用此配置

1
2
3
4
5
6
7
8
9
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<!--过滤器开启会导致excel文件损坏!且此命令没有实际的工程意义!-->
<!--<filtering>true</filtering>-->
</resource>
</resources>
</build>