2017-05-31 57 views
0

Spring MVC的@RequestBody可变整数保护如何保护变量整型数在包装(容器)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

有没有办法来 “保护”。

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

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

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

当我使用@ModelAttribute注释soo我可以使用BidindingResult可以捕捉到这个问题。但我不知道如何发送一个具有一个Integer和一个字符串的数组作为** NO ** JSON数据。 – hard456

+0

发送字符串数组总是 – StanislavL

+0

谢谢。这个解决方案适用于我。但我不确定这是否是最佳解决方案。 – hard456

相关问题