Spring MVC @RequestBody变量字符串的整数保护

时间:2017-05-31 06:38:27

标签: jquery json ajax spring spring-mvc

如何保护包装器(容器) WrapperClass 中的变量整数以接收字符串而不是数字?

代码:

@RequestMapping(value = "MyOwnURL", method = RequestMethod.POST)
    public @ResponseBody
    ResponseSomething createTeam(HttpServletRequest r, @RequestBody WrapperClass wrapperClass) {
    //method body                                      
}

class WrapperClass{
  Integer number;
  //getter and setter
}

1 个答案:

答案 0 :(得分:0)

没有办法“保护”。

当请求包含number属性的“abc”时,您期望什么?

对我来说,最好的想法是定义仅字符串属性并添加在飞行中转换属性的getter / setter。如何处理无效值的逻辑可以放在getters / setter中(如果要为无效内容返回一些默认值),或者可以添加控制器验证,例如基于hibernate验证器。然后,您可以使用自定义注释和验证器注释属性以检查正确的值。

class WrapperClass{
  @MyMustBeNumberAnnotation("must.be.number.error")
  String number;
  //getter and setter
}