2017.5.11工作随笔
2017-05-11 15:41
399 查看
最近实现了一个非常蛋疼的功能,虽然看上去是很简单。但是,页面处理起来非常麻烦,尤其是加上产品部门特殊的那些逻辑。但是现在终于算是弄出眉目了。
简单点来标记一下自己遇到的一些事情吧。
1.分页sql的逻辑问题,
开始页就不要等于了,这样会重复拿到一条数据。
2.c标签的when判断
(1)
注意:是放在花括号里面的 ,很容易写成${} == ‘1’这样子。这样是不行的、、
(2)
再就是做 == 判断。可以使用eq这样。
3.因为我们是使用jersey的方式进行开发的,所以当我前台需要传一个键值对象的时候出问题。
jersey常用的接收参数的方式是
这样也可以但是需要写的很多,想以传bean的形式,网上搜了一下,解决方法是
类似于这样,然后再用;最后选用的方式:
前台把参数对象转成json串,
这样后台就@FormParam(“mo”) String param再把拿到的json串解析成map使用就可以了。
4.再就是datatables的后端分页 ;
这里就不赘述了,主要是这个ajax方法。
5.js的一些琐碎就太多了,像jquery操作select checkbox;parseInt();json字符转对象,对象转字符;数组的遍历,字符串的截取,虽然看似简单,但是用到的时候还是需要重新把握一下。
未完待续。。。
简单点来标记一下自己遇到的一些事情吧。
1.分页sql的逻辑问题,
select * from ( select *,rn from ( select * from s ) a where a.rn <= end ) b where b.rn > start
开始页就不要等于了,这样会重复拿到一条数据。
2.c标签的when判断
(1)
<c:when test="${danganBean.isNewMenmber == '1'}">是</c:when>
注意:是放在花括号里面的 ,很容易写成${} == ‘1’这样子。这样是不行的、、
(2)
<c:when test="${item.key eq danganBean.archiveBean.isRejectedUShield}">
再就是做 == 判断。可以使用eq这样。
3.因为我们是使用jersey的方式进行开发的,所以当我前台需要传一个键值对象的时候出问题。
jersey常用的接收参数的方式是
@Path("/updateDanganInfo") @POST @Produces(MediaType.APPLICATION_JSON) public String updateDanganInfo( @FormParam("moId") Long moId, @FormParam("busiSituation") String busiSituation, @FormParam("empYes") String empYes, @FormParam("installYes") String installYes, @FormParam("peiheYes") String peiheYes, @FormParam("agreeInspectYes") String agreeInspectYes, @FormParam("everyMonthBussinessCounts") String counts, @FormParam("oneQuota") String oneQuota, @FormParam("isRejectedUShield") String isRejectedUShield, @FormParam("receiveUShieldDate") String receiveUShieldDate, @FormParam("installUshieldDate") String installUshieldDate ){ }
这样也可以但是需要写的很多,想以传bean的形式,网上搜了一下,解决方法是
@XmlRootElement public Class User{ @FormParam("oneQuota") String oneQuota; @FormParam("installUshieldDate") String installUshieldDat; }
类似于这样,然后再用;最后选用的方式:
前台把参数对象转成json串,
var paramObj = new Object(); paramObj['mo']=params;
这样后台就@FormParam(“mo”) String param再把拿到的json串解析成map使用就可以了。
4.再就是datatables的后端分页 ;
ajax:function(data, callback, settings){
var param = {};
//组装分页参数
param.startIndex = data.start;
param.pageSize = data.length;
var params = JSON.stringify(param);
var paramObj = new Object(); paramObj['mo']=params;
$.ajax({
type: "POST",
url: "${ctp}/rest/member/load",
cache : false, //禁用缓存
data: paramObj, //传入已封装的参数
dataType: "json",
success: function(result) {
//setTimeout仅为测试延迟效果
setTimeout(function(){
//异常判断与处理
if (result.errorCode) {
//$.dialog.alert("查询失败。错误码:"+result.errorCode);
return;
}
//封装返回数据,这里仅演示了修改属性名
var returnData = {};
returnData.draw = data.draw;//这里直接自行返回了draw计数器,应该由后台返回
returnData.recordsTotal = result.total;
returnData.recordsFiltered = result.total;//后台不实现过滤功能,每次查询均视作全部结果
returnData.data = result.data;
callback(returnData);
},200);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
//$.dialog.alert("查询失败");
//$wrapper.spinModal(false);
}
});
},
这里就不赘述了,主要是这个ajax方法。
5.js的一些琐碎就太多了,像jquery操作select checkbox;parseInt();json字符转对象,对象转字符;数组的遍历,字符串的截取,虽然看似简单,但是用到的时候还是需要重新把握一下。
未完待续。。。
相关文章推荐
- 工作问题随笔
- 工作随笔20170216-第二人生
- 工作随笔——ember框架去除url上的#号
- 存储过程(工作随笔)门诊统筹
- 工作随笔——spring异步处理@Async使用笔记
- 工作随笔——贰(关于字符串非空判断与数据库中日期时间问题)
- 工作随笔——入职一年半来的工作感受
- 工作常用 随笔记录
- 随笔 2013年5月19日 -- 我的三年工作
- 30岁程序员的工作随笔之“开篇”
- 随笔,平日工作小记
- 第一次换工作(随笔)
- [工作随笔]关于马戏团的故事
- 事关Animation Tree的工作随笔(一)
- 工作随笔——Intellij_idea-14官方快捷键中文版
- [2011028]工作随笔
- [20110306]工作随笔
- [20110323-24]工作随笔
- 四年IT运维工作简单随笔总结 推荐
- 工作随笔——pre-commit钩子限制日志长度和提交的文件类型