项目开发中遇到的问题总结
程序员文章站
2022-07-13 16:10:16
...
近期在项目开发中所遇到的一些问题,记录下来,有空的的时候看看以免犯同样的问题。
以下问题是近期工作中遇到的问题,可能大神还有别的解决方式,望指教!
1.在使用goole的GSON将javaBean转成json的时候如果遇到一对多或者多对一的时候会出现循环引用问题,之前没怎么用过GSON所以对其不是很了解,最后果断放弃了使用GSON,换成alibaba的fastjson,是用fastjson之后发现预期效果比GSON的强一些,虽然也会有循环引用的问题,不过发现只是在子类数据和父类数据相同的情况下会出现这种问题,(及多对一的情况下)最后在jsp添加判断果断决绝这个问题。
2.在使用jqueryForm提交带文件的表单时,发现action总是会取到前一个上传的文件,这个问题让我抓耳挠腮,jqueryform提交时设置cache: false 也不行最后想到会不是action没销毁,两次公用一个action造成的,结果在网上找到一篇文章解决了我的问题,文中提到:“ scope="prototype" 会在该类型的对象被请求时创建一个新的action对象。如果没有配置scope=prototype则添加的时候不会新建一个action,他任然会保留上次访问的过记录的信息。
<bean id="personAction" scope="prototype" class="quickstart.action.PersonAction"> <constructor-arg ref="personService" /> </bean>
”
链接:http://blog.csdn.net/m13666368773/article/details/7440027
3.使用jqueryform提交表单时因为浏览器差异也纯在不少的问题,公司测试使用的浏览器是IE7,代码在firfox下能够正常提交而在IE7上面就不好用,虽然现在很少人用IE7,不过毕竟是个问题,最后针对浏览器的不同提供了两种提交方式
先判断浏览器
//判断浏览器 function getExplorer() { var explorer = window.navigator.userAgent ; //ie if (explorer.indexOf("MSIE") >= 0) { return "ie"; } //firefox else if (explorer.indexOf("Firefox") >= 0) { return "Firefox"; } //Chrome else if(explorer.indexOf("Chrome") >= 0){ return "Chrome"; } //Opera else if(explorer.indexOf("Opera") >= 0){ return "Opera"; } //Safari else if(explorer.indexOf("Safari") >= 0){ return "Safari"; } }
IE提交方式:
//IE或其他浏览器的提交方式 var vision=getExplorer(); if(vision==="Chrome" || vision==="ie" || vision==="Opera" || vision==="Safari") { var options = { url:'<%=basePath%>businessApply_addNonBussinessApply.action', type:'POST', cache: false, success:function(msg){ var json=eval("("+msg+")") if(json=='larger'){ alert("上传文件太大,单个文件只限于1M以下.") return; }else if(json=='typerr'){ alert("文件类型出错") return; }else if(json=='suc'){ alert("xxx新增成功!"); $("#townshipId").val(""); $("#placeName").val(""); $("#userkindId").val(""); $("#applyStatusId").val(""); window.location.href="<%=basePath %>businessApply_goList.html?type=NOTWORK_INFO"; } } }; setTimeOut($('#addbusinessApplyForm').ajaxSubmit(options),0); return false; }
Firfox提交方式:
//火狐浏览器提交方式 if(vision==="Firefox") { $("#addbusinessApplyForm").ajaxSubmit({ cache: false, success:function(msg){ var json=eval("("+msg+")") if(json=='larger'){ alert("上传文件太大,单个文件只限于1M以下.请重新上传!") return; }else if(json=='typerr'){ alert("文件类型出错") return; }else if(json=='suc'){ alert("初次备案新增成功!"); $("#townshipId").val(""); $("#placeName").val(""); $("#userkindId").val(""); $("#applyStatusId").val(""); window.location.href="<%=basePath %>businessApply_goList.html?type=NOTWORK_INFO"; } } }) return false; }