我想用 jquery $.ajax 将一些汉字传递给 Spring Controller,但是当我在 Spring Controller 中打印参数值时,我得到了错误的值。
这是ajax代码:
var edit = 'editGroup?groupID='+groupID+'&groupName='+groupName+'&description='+description+'&status='+status+'&json='+json;
if(groupName ==""){
alert("Group Name can not be Empty!");
return;
}
$.ajaxSetup({ scriptCharset: "utf-8" ,contentType: "application/x-www-form-urlencoded; charset=UTF-8" });
$.ajax({
type: "POST",
url:edit,
contentType: "charset=utf-8",
success:function(result){
//window.location ="<c:url value='viewGroupListByUser'/>";
}
});
这是控制器中的代码:
@RequestMapping(value="editGroup", method=RequestMethod.POST)
@ResponseBody
public Integer editGroup(@RequestParam(value="groupID") Integer groupID,
@RequestParam(value="groupName") String name, @RequestParam(value="description") String description,
@RequestParam(value="status") String status, @RequestParam(value="json") String json)
throws ServletException, IOException, JSONException {
System.out.println("Name : "+name);
...
我已将 web.xml 配置为:
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
我已经尝试了很多方法来解决这个Answer @这个论坛提到的问题,但是我仍然无法使用ajax 在Controller 中获取中文字符。请帮帮我,我卡在这里,谢谢。