最近因项目不得不研究下spring表单验证,通过搜索资料,最后还是决定使用spring-modules-validation.jar
以下是相关的代码
实体bean
public class Configuration{
@NotNull
@Length(min=3,max=10)
private String name;//配置名称
...............
}
controller
@Autowired
private Validator validator;
@RequestMapping(CREATE)
public String save (@ModelAttribute("configuration") Configuration object,BindingResult result, HttpServletRequest request,ModelMap model){
//表单验证
validator.validate(object, result);
List<ObjectError> error = result.getAllErrors();
log.debug("result>>"+result);
if (result.hasErrors()) {
model.addAttribute("objectErrorList",result.getAllErrors());
return FORM;
}
配置
<bean id="configurationLoader" class="org.springmodules.validation.bean.conf.loader.annotation.AnnotationBeanValidationConfigurationLoader"/>
<bean id="validator" class="org.springmodules.validation.bean.BeanValidator" p:configurationLoader-ref="configurationLoader"/>
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource" p:basename="classpath:errors">
<property name="defaultEncoding" value="utf-8" />
</bean>
最后一个是设置一个errors.properties
jsp页面
<c:forEach items="${objectErrorList}" var="error" varStatus="idx">
${idx.index+1 }:<spring:message code="${error.code}"/><br/>
</c:forEach>
其实这里还有另外一种写法,就是不要使用errors.properties
而直接把异常的提示信息写在实体bean中
eg:
@Length(min=3,max=10,message="xxxxx")
在这里的xxxxx如果是中文的话,记得需要先转码再复制填充进去
然后再jsp页面是需要这样调用
<c:forEach items="${objectErrorList}" var="error" varStatus="idx">
${error.defaultMessage}<br/>
</c:forEach>
另外
1.在实体bean中还可以设置其他的验证规则,这个可以研究下spring-modules-validation.jar中的org.springmodules.validation.bean.conf.loader.annotation.handler包下面的类,如@Email验证电子邮箱的输入
2.properties文件的中文问题可以这样解决,使用jdk中的native2ascii.exe工具
native2ascii.exe -encoding iso8859_1 errors.properties errors2.properties(其中的iso编码这个需要根据你系统的需要进行设置)
参考网址:
1.http://www.enavigo.com/2010/08/13/spring-bean-validation-error-code-list-for-custom-error-message/
2.http://wheelersoftware.com/articles/spring-bean-validation-framework-1.html
以上是我的一些心得,估计也不是最好的方法,如果有更好,还恳请高手指导一下
分享到:
相关推荐
3. **路径变量绑定**: 在URL路径中定义的动态部分也可以作为控制器方法的参数,Spring MVC会自动解析并绑定这些变量。 ```java @RequestMapping(value = "/users/{userId}", method = RequestMethod.GET) ...
- 如果有错误,Spring MVC会自动将错误信息绑定到模型中,然后返回到表单页面,`<form:errors>`标签会显示这些错误。 - 如果一切正常,控制器会处理数据并重定向到新的页面或者更新视图。 4. **表单标签实例** ...
Spring Modules验证框架是Spring早期的一个扩展,用于处理Web表单数据的验证。它提供了一种在Spring MVC中集成验证逻辑的方式,使得开发者可以方便地在服务层和展示层之间进行数据验证。这篇博客文章(虽然链接无法...
Spring MVC 是一个强大的Java web...总的来说,Spring MVC3通过模型绑定、数据转换、验证以及文件上传等特性,为处理复杂表单提供了全面的支持。开发者可以通过合理的设计和配置,优雅地处理各种复杂的Web表单场景。
Spring提供了一些机制来处理这些问题,如使用`BindingResult`对象来获取绑定错误的信息,或者通过`@Valid`注解配合验证框架(如Hibernate Validator)进行数据校验。 课程中还会涵盖一些高级主题,比如集合类型的...
- **Spring框架中的数据绑定和验证** - **使用第三方库如Hibernate Validator** 本文主要介绍使用JavaScript和jQuery结合进行前端表单验证的方法。 #### 五、jQuery表单验证插件 **jQuery Validate Plugin** 是一...
本篇文章将深入探讨Spring MVC中关于数据绑定和数据校验的知识点。 1. **数据绑定** 数据绑定是Spring MVC中一个强大的特性,它允许我们将HTTP请求参数自动映射到控制器方法的参数上。例如,当用户提交一个HTML...
Spring MVC 3支持RESTful风格的URL设计,增强了视图解析器,引入了模型绑定和数据验证,以及表单标签库,极大地简化了Web开发。 六、Web服务 Spring 3加强了对Web服务的支持,包括SOAP和RESTful风格的服务。Spring-...
在实际的Web开发中,表单处理是用户交互的重要组成部分,Spring提供了强大的支持,使得开发者能够方便地绑定表单数据、进行验证以及处理异常情况。下面,我们将会详细介绍以下几个核心知识点: 1. `@ModelAttribute...
在Spring MVC框架中,表单标签数据绑定是一个关键特性,它允许我们轻松地将表单字段与模型对象的属性关联起来。在这个“图书管理”Demo中,我们将深入探讨这一概念。 首先,Spring MVC中的表单标签是基于JSP标准...
【标题】"(六)struts2 spring3 mybatis-3.2.3 jquery.validationEngine ajax表单验证 数据库重复"所涉及的技术栈主要包括Struts2、Spring3、MyBatis3.2.3以及前端的jQuery.validationEngine和Ajax技术。...
`spring3标签库`是Spring MVC框架中的强大工具,它通过`spring.tld`和`spring-form.tld`两个TLD文件,为开发者提供了丰富的自定义标签,用于处理视图层的各种任务,包括URL创建、国际化、数据绑定和表单渲染。...
3. 数据验证:利用JSR-303/JSR-349标准进行表单验证。 4. 国际化:支持多语言环境,通过MessageSource实现。 5. 文件上传下载:提供便捷的文件上传和下载功能。 五、配置详解 sprintMVC.xml文件是Spring3 MVC的配置...
因此,出现了专门的表单验证框架,如`jQuery Validation Plugin`、`AngularJS`的`ngMessages`模块以及`Spring Framework`中的`Validator`接口等,它们提供了统一的API和规则定义,使得验证过程更加高效和可维护。...
此外,Spring MVC还支持数据绑定、验证、本地化和主题等功能,增强了Web应用的灵活性和可扩展性。 Spring JDBC(版本3)是Spring框架的数据访问模块,它简化了数据库操作,避免了直接编写繁琐的JDBC代码。通过...
在这个"SpringMVC+jsp之表单验证登录"的主题中,我们将探讨如何利用SpringMVC和JSP来实现用户登录功能,包括表单验证和交互流程。 首先,我们需要理解SpringMVC的核心组件。DispatcherServlet是入口点,负责接收...
10. ** 更强大的数据绑定**:Spring 3提供了更强大和灵活的数据绑定机制,允许开发者在表单和模型之间进行复杂的映射操作。 描述中的“博文链接:https://zhou-he.iteye.com/blog/1187327”可能提供了一个具体的...
Spring 的表单标签库提供了一种简洁、高效的方式来处理表单数据绑定和验证,让 JSP 开发变得更加容易和高效。 Spring 的表单标签库还提供了许多其他的标签,例如: * form:label 标签,用于生成一个 HTML 的 ...
在Spring MVC框架中,数据绑定和表单标签是开发Web应用程序时非常重要的组成部分。它们简化了控制器和视图之间的数据交换,并提供了强大的表单渲染功能。以下是对这两个概念的详细解释。 **数据绑定**: 数据绑定是...
此外,Spring3 MVC还提供了强大的数据绑定和验证功能,可以与jQuery表单插件如jQuery Validation Plugin配合使用,实现前后端一致的表单验证。在Controller中定义的命令对象会自动绑定到前端提交的表单数据,而验证...