请求Body具有可选属性

时间:2015-10-06 13:26:17

标签: spring spring-mvc

我有一个通过POST请求接收JSON的端点。

RequestMapping(value = "/app/login", method = RequestMethod.POST,
        headers = { "Content-type=application/json" })
@ResponseBody
public LoginResponse logIn(@RequestBody LoginRequest jsonRequest) {
   // code
}

LoginRequest:

public class LoginRequest {

    private String user;

    private String password;

    private String idPush;

    private Integer idDevice;

    // getters and setters

}

无论如何我可以指定idDevice作为可选项吗?

如果我没有在json中发送idDevice,Spring会返回400错误。

1 个答案:

答案 0 :(得分:11)

似乎将RequestBody设置为optional,使得任何属性都是可选的,而不仅仅是完整的bean。

public LoginResponse logIn(@RequestBody(required=false) LoginRequest jsonRequest) {