gpt4 book ai didi

spring-mvc - Spring MVC & JSR 303 验证导致错误 400

转载 作者:行者123 更新时间:2023-12-04 22:04:41 24 4
gpt4 key购买 nike

好的。我有一个 Spring MVC Controller 方法,如下所示:

public String getInformationByGID(@ModelAttribute("geoInfoParam") @Valid GeoInfoParam geoInfoParam, Model model ,BindingResult result)

GeoInfoParam 类定义了许多带有 @NotNull、@Size 注释验证的输入,我希望在提交表单时执行这些验证(因为我有 @Valid 和 ModelAttribute)。但是发生了什么,当我点击提交时,页面显示 400 错误并且没有在日志中显示任何其他信息。

最佳答案

我调试了执行流程,发现 org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver.java(这是 HandlerAdapter 执行的一部分)。handleBindException 在没有 BindingResult 后跟 ModelAttribute 时调用,此方法设置响应为 400 代码.
我学到的教训是,如果您有一个用@Valid 注释的表单(ModelAttribute),请确保其后紧跟 BindingResult。
所以我改变了我的 Controller 方法签名如下:

public String getInformationByGID(@ModelAttribute("geoInfoParam") @Valid GeoInfoParam geoInfoParam, BindingResult result, Model model)

傻我。现在一切都很好。希望这可以帮助某人。

注意:我使用 Spring MVC 3.2.8 和 Hibernate 验证器 4.2.0 final

关于spring-mvc - Spring MVC & JSR 303 验证导致错误 400,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25145940/

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