1.applicationContext.xml
//spring 验证对应的message资源.
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames">
<list>
<value>WEB-INF/classes/message</value>
</list>
</property>
</bean>
<bean id="beanValidator" class="org.springmodules.validation.commons.DefaultBeanValidator">
<property name="validatorFactory" ref="validatorFactory"/>
</bean>
<bean id="validatorFactory" class="org.springmodules.validation.commons.DefaultValidatorFactory">
<property name="validationConfigLocations">
<list>
<value>/WEB-INF/validator-rules.xml</value>
<value>/WEB-INF/validator.xml</value>
</list>
</property>
</bean>
2.validator-ruls.xml 网上有。
3.validator.xml自己定义的规则:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_1.dtd">
<form-validation>
<formset>
<form name="itemUpdateForm">
<field property="item.name.fullName" depends="required">
<arg0 key="item.name.fullName" />
</field>
</form>
<form name="administratorEditForm">
<field property="administrator.username" depends="required,minlength,maxlength">
<!-- msg标签用于覆盖资源文件的内容,name用户指验证规则,key与资源文件的属性名一致 -->
<!-- arg标签用于向资源文件传递参数,position用于指定参数的位置,key用于指定传递的值 -->
<arg0 key="User name" />
<arg1 name="minlength" key="${var:minlength}"/>
<arg1 name="maxlength" key="${var:maxlength}"/>
<var>
<var-name>minlength</var-name>
<var-value>2</var-value>
</var>
<var>
<var-name>maxlength</var-name>
<var-value>6</var-value>
</var>
</field>
<field property="administrator.password" depends="required,minlength,maxlength">
<!-- msg标签用于覆盖资源文件的内容,name用户指验证规则,key与资源文件的属性名一致 -->
<!-- arg标签用于向资源文件传递参数,position用于指定参数的位置,key用于指定传递的值 -->
<arg0 key="Password" />
<arg1 name="minlength" key="${var:minlength}"/>
<arg1 name="maxlength" key="${var:maxlength}"/>
<var>
<var-name>minlength</var-name>
<var-value>2</var-value>
</var>
<var>
<var-name>maxlength</var-name>
<var-value>6</var-value>
</var>
</field>
</form>
<form name="currencyEditForm">
<field property="currency.currencyCode" depends="required">
<arg0 key="currency.currencyCode" />
</field>
<field property="currency.name.fullName" depends="required">
<arg0 key="currency.name.fullName" />
</field>
</form>
<form name="categoryEditForm">
<field property="category.name.fullName" depends="required">
<arg0 key="category.name.fullName" />
</field>
</form>
</formset>
</form-validation>
4.message.proerties.
data.empty=Please input data.
data.error=Incorrect data.
username.or.password.invalid=Username or password is invalid.
errors.required={0} is required.
errors.minlength={0} can not be less than {1} characters.
errors.maxlength={0} can not be greater than {1} characters.
errors.invalid={0} is invalid.
errors.byte={0} must be a byte.
errors.short={0} must be a short.
errors.integer={0} must be an integer.
errors.long={0} must be a long.
errors.float={0} must be a float.
errors.double={0} must be a double.
errors.date={0} is not a date.
errors.range={0} is not in the range {1} through {2}.
errors.creditcard={0} is an invalid credit card number.
errors.email={0} is an invalid e-mail address.
item.name.fullName=Item Name.
errors.userName.exists=administrator.username has exists.
errors.currency.fullName.exists=currency.name.fullName has exists.
errors.currency.currencyCode.exists=currency.currencyCode has exists.
errors.category.fullName.exists=category.name.fullName has exists.
5.java
@Controller
@RequestMapping("/admin/administrator/*")
public class AdministratorController {
@Autowired
private Validator validator;
@RequestMapping(value = "/admin/administrator/saveOrUpdate.do", method = RequestMethod.POST)
public String onSubmit(@ModelAttribute("administratorEditForm") AdministratorEditForm administratorForm,
BindingResult result, ModelMap model, HttpServletRequest request) {
//spring 规则验证 required,email等等
validator.validate(administratorForm, result);
//后台自定义去重判断..
if (!isAdd
&& !administratorService.validName(administratorForm.getAdministrator().getUsername(),
administratorForm.getAdministrator().getObjectId()) || isAdd
&& !administratorService.validName(administratorForm.getAdministrator().getUsername())) {
result.rejectValue("administrator.username", "errors.userName.exists");
}
if (result.hasErrors()) {
model.addAttribute("itemForm", administratorForm);
if (!isAdd) {
return "admin/administrator/update";
} else {
return "admin/administrator/save";
}
}
}
6.jsp
<tr>
<td>User Name:</td>
<td>
<form:input path="administrator.username" cssClass="input" maxlength="50"/>
<form:errors path="administrator.username" cssClass="red"/>
</td>
</tr>
<tr>
<td>Password:</td>
<td>
<form:password path="administrator.password" cssClass="input" maxlength="50"/>
<form:errors path="administrator.password" cssClass="red"/>
</td>
</tr>
分享到:
相关推荐
《Spring 4.0框架深度探索:基于Maven构建的实战Demo》 Spring框架作为Java企业级应用开发的基石,自推出以来就以其强大的功能和灵活性赢得了广大开发者的心。Spring 4.0作为其一个重要版本,引入了许多改进和新...
向Spring 框架提供上下文信息,包括企业服务,如 JNDI、EJB、电子邮件、国际化、校验和调度等。 Spring AOP。通过配置管理特性,可以很容易地使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块直接将面向方面...
Spring Security是Spring生态系统中的安全框架,用于实现身份验证和授权。它提供了细粒度的访问控制,可以保护Web应用程序免受常见攻击。 九、测试 Spring Test模块提供了测试Spring应用程序的工具,包括单元测试和...
2. **Spring上下文**:为Spring框架提供上下文信息,是基于核心容器的抽象,提供了更强大的功能,如国际化支持、事件传播、资源加载和验证机制等。 3. **Spring AOP**:将面向切面的编程功能集成到Spring框架中,为...
Spring Security是一个强大的安全框架,提供了身份验证、授权、CSRF防护等功能,保护Web应用免受攻击。 在"Spring_Project_1"这个压缩包中,可能包含了Spring框架的基础示例项目,包括配置文件、源代码、测试用例等...
Struts2、Spring和Hibernate是Java Web开发中的三大主流框架,它们各自负责应用程序的不同层面,协同工作可以构建出高效、可维护的复杂Web应用。在本资源中,"struts2 spring hibernate框架技术与项目实战 光盘源码 ...
9. **安全性**:Spring.NET整合了Windows身份验证、Forms Authentication和OAuth等多种安全机制,提供了全面的安全管理框架。 10. **企业服务**:Spring.NET支持工作流、JMS、JMX等企业级服务,使得在.NET平台上...
Spring Security则是Spring生态中的安全组件,提供身份验证和授权服务,保护你的应用程序免受潜在的安全威胁。 总的来说,这份《Java Spring框架学习资料 pdf》是全面了解和精通Spring框架的宝贵资源。无论你是初学...
Spring Security为Android应用提供了认证和授权功能,可以实现用户身份验证、权限控制等,保障应用的安全性。 9. **MVC模式** Spring MVC模式可以用于构建Android应用的后端服务,提供RESTful API。虽然Android...
Validator验证框架,STRUTS动态验证的规则与规范!
### Spring框架的设计理念与设计模式分析 #### 一、Spring框架概述 Spring作为一个顶级的Java开发框架,其设计理念和架构模式对于理解和应用该框架至关重要。本文将深入探讨Spring框架的核心设计理念,以及它如何...
Spring Security是Spring生态系统中的安全框架,提供身份验证、授权和会话管理等功能,用于保护Web应用和REST服务的安全。 九、Spring Batch Spring Batch是Spring提供的批处理框架,适用于处理大量数据的场景。它...
6. Spring与Shiro整合:Apache Shiro是一个强大的安全框架,负责身份验证、授权、会话管理和加密。Spring通过AOP和Shiro的API集成,为应用提供全面的安全管理,包括登录认证、权限控制等。 7. Spring与Struts2整合...
让用户基本无需任何配置构建RESTFul风格的应用,另外框架的DAO层同时实现了Spring Data JPA, Hibernate, Mabatis的各自优势, 基本无需手写SQL语句,也支持用户高度定制SQL,在控制器层, 加入动态视图, 参数校验等...
此外,Spring Security是用于身份验证和授权的安全框架,它可以轻松地添加到Spring应用中,提供用户认证、访问控制等功能,保护你的应用免受未经授权的访问。 Spring Boot是Spring框架的一个扩展,它简化了Spring...
6. **断言**:虽然Spring测试框架本身并不包含断言库,但它可以很好地与JUnit、AssertJ等断言库配合使用,用于验证测试结果。 7. **测试配置**:你可以通过`@TestConfiguration`注解来定义专门为测试用例创建的配置...
《使用Validator做SpringMVC的验证框架》教程源码 教程地址: http://blog.csdn.net/devefx/article/details/51565139 http://blog.csdn.net/devefx/article/details/51567533 ...