我在使用@Valid
參數到我的@Controller
上的處理程序方法時遇到問題。我的代碼如下所示:如何在Spring MVC的@RequestBody參數中使用@Valid?
@RequestMapping(value=BIBBLE_BOBBLE_URI_PATTERN + "/widgets", method=RequestMethod.POST)
@ResponseBody
@ResponseStatus(HttpStatus.CREATED)
public Widget saveNewWidget(
@PathVariable final String username,
@PathVariable final String bibbleBobbleName,
@Valid @RequestBody final Widget widget,
final BindingResult results,
final HttpServletRequest request,
final HttpServletResponse response)
其中Widget
是類我的域對象之一。我使用@RequestBody
註釋來表明請求的有效載荷映射到widget
(在我的測試中,請求是JSON,雖然Jackson在我的類路徑中,所以我也可以使用XML)。
正如你所看到的,BindingResult
參數Widget
參數之後直接跟隨,但我得到了以下錯誤:
java.lang.IllegalStateException: Errors/BindingResult argument declared without preceding model attribute. Check your handler method signature!
我如何申請的@Valid
標註爲@RequestBody
參數,然後得到的結果?
P.S.我使用annotation-driven
來處理控制器的接線,做內容協商等。
我正在學習所有這些,但**,嘗試命名屬性'@ModelAttribute(「xyz」)Widget Widget'。 – 2011-06-07 09:25:36
@DecaniBass是否會解決它對我在@ craftsman的回答中提到的任何數據都沒有約束的問題? – 2011-06-07 09:47:54
我知道它是一箇舊的POST,但是它爲你工作?我使用的是Spring 3.2。綁定工作,但不是@Valid。這裏發佈的問題[http://stackoverflow.com/q/16174990/668650] – 2013-04-23 17:01:09