大家好,欢迎来到IT知识分享网。
最近维护了一个非常老的项目,遇到了很多坑爹的问题,记录一下
一:修改js文件后不生效
修改了js后不生效,js文件是通过src引入到jsp的
修改js后刷新重新登录发现并未生效,clean了tomcat重启服务,删了浏览器缓存都不管用。
在internet常规里删除并不管用,先修改浏览器缓存的配置,如下图,在常规设置里面,将检查存储的页面的较新版本改成每次访问网页时,确定即可,这样,每次刷新页面时就能加载最新的文件。然后再删除浏览记录
安全-删除浏览记录
这样就避免加载页面时加载的是修改前的文件。
二:乱码问题
从前端页面传到后台的中文字符出现乱码,前端页面是gbk,后台解码后不好使
前端通过jQuery的autocomplete发送请求,extraParams传递参数。
采用encodeURI前台编码后台再编码
注意要对中文使用encodeURI编码两次
extraParams:
{q:function(){
return encodeURI(encodeURI($(’#keyword’).val()))
}
}
这里同样也要解码两次
String key =URLDecoder.decode(URLDecoder.decode(q,“UTF-8”),“UTF-8”);
function showSubJqField(parentPageField,subPageField,parentDataDictField,subDataDictField,pathStr){
alert("getDataDict.go?"+parentPageField+","+subPageField+","+parentDataDictField+","+subDataDictField+","+pathStr);
j$('#'+subPageField).unbind().autocomplete(pathStr+"getDataDict.go",{
minChars : 0,
autoFill: false,
matchContains: true,
max:50,
delay:10,
scroll : true,
scrollHeight : 220,
extraParams : {
field : function() {
return subDataDictField;
},
parent_field:function(){
return parentDataDictField;
},
option_value : function() {
return j$("#"+subPageField).val();
},
parent_value:function(){
//return j$("#"+parentPageField).val();//原来是这样直接传递到后台
return encodeURI(encodeURI(j$("#"+parentPageField).val()));//修改后这样传,经过encodeURI两次编码
//return "CN";
}
},
formatItem : function(data, i, total) {
return data[0];
},
formatMatch : function(data, i, total) {
return data[0];
},
formatResult : function(data) {
return data[0];
}
});
}
后台解析:
if(parent_value!=null&&parent_value.length()>0){
// parent_value = new String(parent_value.getBytes("GBK"),"UTF-8");
// parent_value=URLDecoder.decode(parent_value,"utf-8");
//原来是这样,将前台的中文由jbk转成utf-8,不好使,因为前台传过来就乱码了
//现在改成这样的,因为前端编码两次,后端也要进行两次解码。问题解决
parent_value=URLDecoder.decode(URLDecoder.decode(parent_value,"UTF-8"),"UTF-8");
}
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/21325.html