繁体   English   中英

如何在Spring中传递多个请求参数?

[英]how to pass multiple request parameters in Spring?

在我的Spring应用程序中,我将两个请求参数传递给我的业务逻辑。

$.ajax({
        url : "classes/addResult",
        type:'POST',
        data : {"names":names,"globalClassId":globalClassId}

    });

和我的业务逻辑

@RequestMapping(value = "addResult", method = RequestMethod.POST)
public String addResult(ResultForm form,
        BindingResult result, Model model,
        @RequestParam("names") String[] names,
        @RequestParam("globalClassId") String globalClassId)
        throws Exception {
        -------------
        ------------
    return "";
}

但控制器没有调用这种方法..为什么他们的代码有任何错误..

<script type="text/javascript">
   var names = new Array();
    $.ajax({
        url : "Result",
        type : 'POST',
        data : {
            "names" : JSON.stringify(names),//or names.join()
            "globalClassId" : globalClassId
        }});
</script>

如果您收到错误400(错误请求)????????????

当您将数组数据(在您的情况下为{names:names})传递给$ .ajax()方法时,它会在paremeter名称之后附加squre括号[]表示名称为[] //而不是名称)

因此,您需要对代码进行一些更改

@RequestMapping(value = "addResult", method = RequestMethod.POST)
public String addResult(ResultForm form,
        BindingResult result, Model model,
        @RequestParam("names[]") String[] names, //replace names with names[]
        @RequestParam("globalClassId") String globalClassId)
        throws Exception {
        -------------
        ------------
    return "";
}

或者你可以使用

@RequestMapping(value = "addResult", method = RequestMethod.POST)
    public String addResult(ResultForm form,
            BindingResult result, Model model,
            @RequestParam("globalClassId") String globalClassId)
            throws Exception {
        String[] names = request.getParameterValues("names[]");//getting names array here
            -------------
            ------------
        return "";
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM