如何保护包装器(容器) 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
}
答案 0 :(得分:0)
没有办法“保护”。
当请求包含number
属性的“abc”时,您期望什么?
对我来说,最好的想法是定义仅字符串属性并添加在飞行中转换属性的getter / setter。如何处理无效值的逻辑可以放在getters / setter中(如果要为无效内容返回一些默认值),或者可以添加控制器验证,例如基于hibernate验证器。然后,您可以使用自定义注释和验证器注释属性以检查正确的值。
class WrapperClass{
@MyMustBeNumberAnnotation("must.be.number.error")
String number;
//getter and setter
}