當Jquery和struts2同時使用時一個巧妙解決亂碼的問題,
struts2有自帶一個Encoding的Filter能解決亂碼問題,當然有中文的時候,form要用post請求。具體配置如下:
這個要struts2 的2.1.8版本才能使用,但是2.1.6也可以使用,但是在web.xml中就要用一下配置才可以
struts2
org.apache.struts2.dispatcher.FilterDispatcher
這個filter-class是官網上不提倡用的。如果struts2的版本是2.1.8的話當然就可以使用官網上推薦用的filter了
struts2
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
配置了以上都可以解決掉所有帶中文的post送出,不會出現亂碼。但是如果和ajax一起使用起來:
var url_2 = "/school_class/classGradeAction_validatorName.action?formMap.gradeName="+$("#gradeName").val()+"&formMap.gradeId="+$("#id").val();
$.ajax({
type: "POST",
url: url_2,
async : false,
data: null,
success: function(treeHtml){
msg = treeHtml;
}
});
formMap是struts的Action裡的一個map對象,這樣就會出現亂碼問題了。改用以下方式亂碼問題解決:
var url_2 = "/school_class/classGradeAction_validatorName.action"
var data_2 = {'formMap.gradeName':$("#gradeName").val(),'formMap.gradeId':$("#id").val()};
$.ajax({
type: "POST",
url: url_2,
async : false,
data: data_2,
success: function(treeHtml){
msg = treeHtml;
}
});
背景通過String gradeName =this.formMap.get("gradeName");正常顯示!