2017-05-31 55 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

相關問題