1

使用 springparams的注释不起作用。

@RequestMapping(value = "/login", method = RequestMethod.PUT)
public @ResponseBody ResponseMsg login(@RequestParam String userName, @RequestParam String password ) 
{
    ResponseMsg responseMsg = CommonUtils.checkParam(userName, password);

    if(responseMsg.getStatus().equalsIgnoreCase("True"))
    {
        responseMsg =  userService.login(userName, password);
    }
    return responseMsg;
}

我正在使用此函数获取 put 值,但它显示 400 Bad Request。有什么帮助吗?

4

3 回答 3

4

正确的答案是这个……感谢 OQJF

@RequestMapping(value = "/login", method = RequestMethod.GET)
    public @ResponseBody ResponseMsg login(@RequestHeader(value="username", required=false) String userName, 
            @RequestHeader(value="password", required=false) String password ) {

        ResponseMsg responseMsg = CommonUtils.checkParam(userName, password);
        if(responseMsg.getStatus().equalsIgnoreCase("True"))
            responseMsg =  userService.login(userName, password);
        return responseMsg;
    }
于 2013-03-14T10:20:27.683 回答
1

首先使用 firebug 查看您发送给控制器的参数。如果参数名称正确。我认为原因是用@RequestParam注释的字段默认是必需的,这意味着从客户端发送的参数必须包含它们,即userName和passWord,更改为:@RequestParam(value="username" required=false) String userName, @RequestParam(value="password" required=false) String password并尝试一下。

于 2013-03-14T09:30:48.270 回答
0

我不确定你想在这种情况下使用帖子。但是您可以尝试按如下方式访问标头参数:

@RequestMapping(value = "/login", method = RequestMethod.PUT)
public @ResponseBody ResponseMsg login(@RequestHeader("username") String userName, @RequestHeader("password") String password ) {
                ResponseMsg responseMsg = CommonUtils.checkParam(userName, password);
                if(responseMsg.getStatus().equalsIgnoreCase("True"))
                    responseMsg =  userService.login(userName, password);
                return responseMsg;
            }
于 2013-03-14T09:32:39.877 回答