1

スプリングによる注釈が機能しparamsていません。

@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の値を取得するためにこの関数を使用していますが、400BadRequestが表示されます。何か助けはありますか?

4

3 に答える 3

4

正しい答えはこれです...そしてOQJFへのthx

@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 に答える