gpt4 book ai didi

spring - 如何将 @Valid 与 Spring MVC 的 @RequestBody 参数一起使用?

转载 作者:IT老高 更新时间:2023-10-28 13:51:04 28 4
gpt4 key购买 nike

我在 @Controller 上的处理程序方法的参数上使用 @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 参数,然后得到结果?

附:我正在使用 annotation-driven 来处理连接 Controller 、进行内容协商等。

最佳答案

您使用的是 Spring 3.1 吗?它是 Spring 3.1 版本中新增的功能。请看 Validation For @RequestBody Method Arguments

关于spring - 如何将 @Valid 与 Spring MVC 的 @RequestBody 参数一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6129285/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com