1

我想用 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 中获取中文字符。请帮帮我,我卡在这里,谢谢。

4

1 回答 1

2

您使用 post 方法,但将数据放在 url 中,将数据作为 ajax 调用中的数据参数传递。

    $.ajax({
        type: "POST",
        url:'editGroup',
        data:{
            groupID:groupID,
            groupName:groupName,
            description:description,
            status:status,
            json:json
        },
        success:function(result){
            //window.location ="<c:url value='viewGroupListByUser'/>";
        }
    });
于 2013-05-31T15:12:16.853 回答