您的位置:首页 > 其它

2015年创业中遇到的技术问题:11-20

2015-03-13 20:55 495 查看
11.SpringMVC接收参数,冲突。
class LoanBean { private Double amount;}
class LoanInfo{ piavate Money amount;}
@RequestMapping("/doadd")public void doAdd(LoanInfo loanInfo, LoanBean loanBean);

json请求发过来,接收amount就遇到了400错误。
解决办法:变量名称不用同一个。
12.HTML下拉列表框选中。增加的时候,select标签选择了一个值,更新的时候,默认要选中。2种方法:执行一个函数:selectOne("creditRate","${loanInfo.creditRate}");
//这种方法太复杂了,不建议使用function selectOne2(id,value){ var count = $("#"+id+" option").length; for(var i=0;i<count;i++){ var element=$("#"+id).get(0).options[i];   if(element.value == value){ element.selected = true; break; } } } //这种非常简单 function selectOne(id,value){ $("#"+id).val(value); }
13.sql查询优先级。select id,uid, id_card,real_name,status from idcard_info
where 1=1 and (id_card like '%42%' or real_name like '%42%') and status = 2 order by id desc limit 0,10 中间的要加括号,
14.分页组件fupage使用过程中发现了一个bug。 原来是用同步实现分页,郁闷的地方是,需要维护每次请求的pageNo,pageSize,搜索词等。 后来,自己用了异步实现分页,不需要手动维护pageNo等变量,自带的“记忆”功能。 刚刚发现,有个使用过程中的bug。 流程:访问页面,展示第1页,点击第3页。 这个地方,再使用“搜索”功能,page是同一个,pageSize是准确的,但是pageNo仍然是3。 导致了,有搜索结果,但是看不到,因为只有2页。 解决办法:搜索再次发送请求时,指定“pageNo=1”即可。
15.JS函数参数个数不确定。 formatTime({status},{time},{updateTime}); updateTime可能是空。 函数实际为,formatTime(1,111,); 报错了。 //函数,如果参数以“,”结尾,去掉最后1个“,” function(full,funName,funArgs) { //0:@centToYuan(120000) //1:centToYuan //2:120000,1 //console.log("0:"+arguments[0]); //console.log("1:"+arguments[1]); //console.log("2:"+arguments[2]); if(funArgs != null && funArgs.lastIndexOf(",")==funArgs.length-1){ console.log(funArgs); funArgs=funArgs.substr(0,funArgs.length-2); } var fn=funName+"("+funArgs+")"; var tdValue=eval(fn);});
16.JS中的var变量,最好以“;”结尾。var formatTenderReturnMoney = function(type, amount, principal, extra_interest) { var str = ""; return str; };//这个地方的“分号”不能少啊。 ( function() { })();
17.Mybatis的Dao函数重名。 在java中,函数是可以重名,因为可以“重载”。 但是,Mybatis映射的select的id,对应Java程序是dao层的函数名字,不能重名。 这一点,经常会出现。 比如,下面2个都是更新状态,只是where条件不一样。 @Update("update p2p_loan_repay set status=#{status} where rid=#{rid} and status=#{oldStatus}") int updateStatus(@Param("rid")Long rid,@Param("oldStatus")Integer oldStatus,@Param("status")Integer status); @Update("update p2p_loan_repay set status=#{status} where lid=#{loanId} and no=#{no} and status=#{oldStatus}") int updateStatusBy(@Param("loanId") Long loanId,@Param("no")Integer no,@Param("oldStatus")Integer oldStatus,@Param("status")Integer status); 解决办法:把下面的一个方法,rename为: updateStatusByLid。
18.KindEditor和UEditor上传图片有问题。
Spring中已经配置了bean。<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="defaultEncoding" value="UTF-8"></property> </bean>
KindEditor中的取不到文件了。
解决办法,配置自定义的MyMultipartResolver也就是因为这个配置,会让Spring MVC处理request对象,所以在使用KindEditor上传图片的时候,拿到的request都是空的.
只需要自己写一个类继承CommonsMultipartResolver,重写isMultipart方法放过KindEditor上传图片的URL即可.
public class MyMultipartResolver extends CommonsMultipartResolver { @Override public boolean isMultipart(HttpServletRequest request) { if(request.getRequestURI().contains("/message/uploadJson")) { return false; } else { return super.isMultipart(request); } }}以上代码实现了一个自定义的MyMultipartResolver继承了CommonsMultipartResolver,重写了isMultipart,放过所有包含/message/uploadJson的请求.
最后在XML配置文件中,使用我们自己的MyMultipartResolver
<bean id="multipartResolver" class="com.kenshiro.MyMultipartResolver"> <property name="defaultEncoding" value="utf-8"></property></bean>
参考资料:http://my.oschina.net/kenshiro/blog/160634
19.KindEditor无法获取值。KindEditor.ready(function(K) { editor = K.create('textarea[id="content"]', { cssPath : prettifyCssPath, uploadJson : uploadJson, urlType : 'absolute' }); prettyPrint(); }); 解决办法:获得值之前,需要先调用同步方法“sync”。editor.sync();$("#content").val();感觉挺麻烦的。
20.KindEditor和UEditor上传图片,返回的路径可能是“/image/”这种。如果Tomcat带项目名称,比如http://localhost:8080/user/,这个时候无法正常显示图片,真够烦人的。
目前图省事,并且保证兼容性,直接把项目部署在root下。很多类似的问题,都可以采用这种root部署的方式解决。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: