2017.5.11工作随笔

来源:互联网 发布:win10 mac地址怎么查 编辑:程序博客网 时间:2024/06/08 14:06

最近实现了一个非常蛋疼的功能,虽然看上去是很简单。但是,页面处理起来非常麻烦,尤其是加上产品部门特殊的那些逻辑。但是现在终于算是弄出眉目了。

简单点来标记一下自己遇到的一些事情吧。
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的形式,网上搜了一下,解决方法是

@XmlRootElementpublic 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字符转对象,对象转字符;数组的遍历,字符串的截取,虽然看似简单,但是用到的时候还是需要重新把握一下。

未完待续。。。

1 0