工作随笔2017.5.11

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

简单点来标记一下自己遇到的一些事情吧。
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 : w h e n t e s t = " {} == '1'这样子。这样是不行的、、 (2)`<c:when test=" ==12<c:whentest="{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字符转对象,对象转字符;数组的遍历,字符串的截取,虽然看似简单,但是用到的时候还是需要重新把握一下。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值