近期在项目开发中所遇到的一些问题,记录下来,有空的的时候看看以免犯同样的问题。
以下问题是近期工作中遇到的问题,可能大神还有别的解决方式,望指教!
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.youkuaiyun.com/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;
}