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
- 2017.5.11工作随笔
- 工作随笔-17/11/2004
- 工作随笔
- 工作随笔
- 工作随笔
- 工作随笔
- 工作随笔
- 工作随笔
- 工作随笔
- 工作随笔
- 工作随笔
- 工作随笔
- 工作随笔
- 工作随笔
- 工作随笔
- 2004.12.16工作随笔
- 工作随笔(1)
- ycc的工作随笔
- SurfaceTexture BufferQueue has been abandoned
- 如何在CSDN博客中编辑公式?
- gcc编译参数-fPIC的一些问题
- Win10安装.NET Framework 3.5的方法(尤其是出现错误87)
- 和公务员谈恋爱是一种什么样的感受
- 2017.5.11工作随笔
- 黄聪:C# 写Excel 代码
- GRUB中硬盘和分区编号,UUID
- intellij cannot resolve method问题解决
- Android获取CPU使用率
- GOLANG简单类型定义,在协议解析的妙用
- 在MQTT服务器mosquitto上使用SSL/TSL
- 简单的生产者消费者例子
- POJ3256 Cow Picnic DFS搜索