如果一个方法中有参数被 @Valid 标注了,但该参数后面没有紧跟一个 BindingResult 类型的参数,那么提交到该方法时,将返回 400 错误。
错误消息将会是:The request sent by the client was syntactically incorrect ().
错误的方法定义 1 :(错误原因:没有 BindingResult 参数)
@RequestMapping({"error400" })
public String error400(@Valid @ModelAttribute("testForm") TestForm testForm) {
return"test";
}
错误的方法定义 2 :(错误原因:没有紧跟在 @Valid 参数之后)
@RequestMapping({"error400" })
public String error400(@Valid @ModelAttribute("testForm") TestForm testForm, Model model, Errors result) {
return"demo/front/test";
}
也可参考 DefaultHandlerExceptionResolver.java 中的方法说明:
/**
* Handle the case where an {@linkplain ModelAttribute @ModelAttribute} method
* argument has binding or validation errors and is not followed by another
* method argument of type {@link BindingResult}.
* By default an HTTP 400 error is sent back to the client.
* @param request current HTTP request
* @param response current HTTP response
* @param handler the executed handler
* @return an empty ModelAndView indicating the exception was handled
* @throws IOException potentially thrown from response.sendError()
*/
protectedModelAndView handleBindException(BindException ex, HttpServletRequest request,
HttpServletResponse response, Object handler)throws IOException {
response.sendError(HttpServletResponse.SC_BAD_REQUEST);
returnnew ModelAndView();
}
转自:http://blog.csdn.net/lougnib/article/details/9973257
分享到:
相关推荐
当用户提交数据时,SpringMVC会自动调用JSR303验证器,如果输入不符合预设规则,系统将抛出异常并返回错误信息。 JSR303的JAR包通常包含了核心验证API(javax.validation.*)和实现,如Hibernate Validator,它是...
以上所述,是SpringMVC使用JSR-303进行校验的详细知识点,包括了校验时需要添加的依赖、如何在Java Bean中定义校验规则、控制器中如何触发和处理校验、以及如何在前端页面中展示校验结果。掌握了这些知识点,开发者...
本篇文章将详细介绍如何在SpringMVC中使用JSR-303进行Bean验证。 首先,我们需要引入JSR-303的实现库。通常使用的是Hibernate Validator,它是JSR-303规范的一个成熟实现。在不使用Maven的情况下,我们需要下载`...
如果校验失败,我们将返回错误页面的视图名称,否则重定向到成功页面。 通过这种方式,我们不仅在前端进行了数据校验,同时也加强了后端的安全性,确保了即使绕过前端校验,后端依然可以独立完成校验工作,防止非法...
JSR303校验一些常用的规则
在本篇《SpringMVC杂记(五) JSR303数据验证》中,我们将深入探讨SpringMVC框架如何集成并使用JSR303(JavaBeans Validation)来进行数据验证,这是一种强大的验证机制,可以确保应用程序接收到的数据是合法且符合...
SpringMVC 数据的格式化、JSR 303数据校验和国际化 实例.zip 对应博客:http://blog.csdn.net/peng_hong_fu/article/details/53559773
JSR303用到的jar包,本人使用的,现分享给大家,希望能给大家带来帮助 classmate-0.8.0.jar hibernate-validator-5.0.0.CR2.jar hibernate-validator-annotation-processor-5.0.0.CR2.jar jboss-logging-3.1.1...
4. 处理异常:当验证失败时,SpringMVC会抛出`MethodArgumentNotValidException`,可以通过异常处理器来捕获并返回错误信息给客户端。 5. 自定义验证:如果预定义的约束不足以满足需求,可以创建自定义的验证注解和...
Spring MVC 3.2已经内建了对JSR 303的支持,因此我们可以方便地使用预定义的校验注解,如`@NotNull`, `@Min`, `@Max`, `@Size`等。 以下是一些常见的校验注解及其用法: 1. `@NotNull`: 检查字段是否为非空。 2. `...
SpringMVC支持JSR-303/JSR-349标准的数据校验框架,如Hibernate Validator。通过在模型类的字段上添加验证注解(如`@NotNull`, `@Size`, `@Min`, `@Max`等),可以对用户提交的数据进行校验。在控制器中,使用`@...
hibernate-validator-5.2.4.Final.jar hibernate-validator-annotation-processor-5.2.4.Final.jar hibernate-validator-cdi-5.2.4.Final.jar validation-api-1.1.0.Final.jar jboss-logging-3.2.1.Final.jar ...
通过提供即时反馈,用户可以更快地了解输入问题并进行修正,而不是等待服务器端返回错误信息。此外,验证还可以防止无效请求对后端服务造成不必要的压力,从而提高系统的整体性能和稳定性。 在Spring MVC测试方面,...
使用SpringMVC的验证器完成货物入库输入校验。验证入库时间,以及商品价格是否合理等。主要用到的JSR303中:@Past:验证Date和Calender对象是否在当前时间之前。@Pattern:验证String对象是否符合正则表达式的规则。
这主要是通过使用Hibernate Validator来实现数据的验证,它是一个遵循JSR 303(Java Bean Validation)和JSR 349(Java Bean Validation 1.1)标准的实现。本教程将详细介绍如何在Spring MVC中配置并使用Hibernate ...
SpringMVC JSR 数据校验完整jar包下载,一共六个jar包,classmate-1.0.0.jar,hibernate-validator-5.0.0.final.jar,hibernate-validator-annotation-processor-5.0.1.final.jar,hibernate-validator-cdi-5.0.0....
本文将深入探讨如何在Spring MVC项目中集成并使用Hibernate Validator来实现高效、强大的数据校验功能。 一、 Hibernate Validator简介 Hibernate Validator是Hibernate组织开发的一个开源项目,它是JSR 380(Java...
Spring MVC 数据效验 jar包 :classmate-1.1.0.jar,hibernate-validator-5.2.4.Final.jar,hibernate-validator-annotation-processor-5.2.4.Final.jar,hibernate-validator-cdi-5.2.4.Final.jar,jboss-logging-3.2.1....
4. **JSR 303/349 与 Hibernate Validator**:JSR 303/349 是 Java 中的 Bean Validation 规范,Hibernate Validator 是其实现。这些规范定义了一系列的校验注解,如 `@NotNull`, `@Size`, `@Email` 等,可以方便地...
springmvc,hibernate的校验框架validation所需要的重要jar包jboss-logging-3.1.1.GA.jar