- 浏览: 249935 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (289)
- java (72)
- oracle (3)
- mysql (5)
- spring (28)
- hibernate (2)
- osgi (0)
- linux (2)
- ExtJs (1)
- jvm (0)
- mybatis (7)
- 分布式 (11)
- MINA (6)
- apache+tomcat (13)
- js+htm (7)
- android (44)
- http (1)
- hbase+hdoop (0)
- memcache (13)
- search (27)
- 部署及性能 (12)
- mongoDB (2)
- 多线程 (12)
- 安全管理验证 (9)
- struts (1)
- webservice (0)
- easyUI (1)
- spring security (16)
- pattern (6)
- 算法 (2)
最新评论
-
lzh8189146:
CommonsHttpSolrServer这个类,现在是不是没 ...
CommonsHttpSolrServer -
xiaochanzi:
我按照你的方法试了下,tomcat6可以发布,但是访问任何网页 ...
基于内嵌Tomcat的应用开发 -
phoneeye:
麻烦你,如果是抄来的文章,请给出来源。谢谢
ant 两则技巧 -
neverforget:
转载不注明出处
Spring Security3.1登陆验证 替换 usernamepasswordfilter -
liang1022:
若不使用eclipse ,如何在命令行下 运行服务端程序 ?
WebService CXF学习(入门篇2):HelloWorld
转载:http://blog.csdn.net/h396071018/article/details/6658962
spring mvc 注解验证springmodules common validator (注解验证)
首先说spring modules, 它是为spring定制的一些工具组件,官方地址在https://springmodules.dev.java.net/, 官网上是这样介绍的:Spring Modules is a collection of tools, add-ons and modules to extend the Spring Framework. The core goal of Spring Modules is to facilitate integration between Spring and other projects without cluttering or expanding the Spring core. 里面有很多子项目。其中commons validator是一个可配置的验证框架,使用方式和工作原理都和struts用的ValidatorPlugIn一样。它可以通过配置生成js在客户端验证, 也可以配合具有验证功能的spring controller实现server端验证.
我做得一个小例子在我的资源里大家可以下载http://download.csdn.net/source/3494112
项目是用eclipse做得包含了所有的jar包和文件直接运行即可
1 从https://springmodules.dev.java.net/下载jar包,我们将使用里面的spring-modules-validation.jar;
2 我使用的IDE是eclipse 新建一个web project名字叫做:springValdiateAnonation, 拷贝spring,jakarta-commons等相关的必要jar文件包括spring-modules-validation.jar到WEB-INF/lib/,拷贝c-rt.tld, spring.tld, spring-form.tld到WEB-INF/tld/;做好spring的基础配置工作,包括web.xml, applicationContext.xml, xxx-servlet.xml; 配置好log4j.properties;
3 在src下新建包web.kjt 在该包下建域对象User, 将作为我们的表单对象;
- public class User {
- private String userName;
- private String password;
- public String getUserName() {
- return userName;
- }
- public void setUserName(String userName) {
- this.userName = userName;
- }
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- }
4 在web.kjt包下新建一个LoginController,因为使用spring mvc注解配置请求信息,所有就不用继承相应的controller,代码如下
- package com.kjt;
- import java.util.ArrayList;
- import java.util.List;
- import javax.validation.Valid;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- import org.springframework.ui.ModelMap;
- import org.springframework.validation.BindingResult;
- import org.springframework.validation.Validator;
- import org.springframework.web.bind.annotation.ModelAttribute;
- import org.springframework.web.bind.annotation.RequestMapping;
- @Controller
- public class LoginController {
- @Autowired(required=false)
- Validator validator; //这个需要在applicationContext.xml中配置bean注射进来
- //客户端验证和后台验证配置的请求
- @RequestMapping("/login.do")
- public String login(@Valid @ModelAttribute("user")User user,BindingResult bindingResult,ModelMap modelMap){
- try {
- System.out.println("11");//看请求能否进来
- if (user.getUserName() ==null) {
- user=new User();
- modelMap.addAttribute(user);
- }
- else {
- validator.validate(user, bindingResult);//这个是对前台提交的数据进行验证
- }
- return"login";
- } catch (Exception e) {
- // TODO: handle exception
- System.out.println("错误信息"+e.getMessage());
- e.printStackTrace();
- return "welcome";
- }
- }
- @RequestMapping(value="/login1.do")//后台验证配置的请求
- public String login1(@Valid @ModelAttribute("user")User user,BindingResult bindingResult,ModelMap modelMap){
- try {
- System.out.println("22");
- if (user.getUserName() ==null) {
- user=new User();
- modelMap.addAttribute(user);
- }
- else {
- validator.validate(user, bindingResult);
- }
- return"login1";
- } catch (Exception e) {
- // TODO: handle exception
- System.out.println("错误信息"+e.getMessage());
- e.printStackTrace();
- return "welcome";
- }
- }
- }
需要说明的是User user,BindingResult bindingResult 这两个对象必须紧挨着,否则出错哦。他们bindingresult是把验证的错误信息存进他得errors属性里了
下面主要讲解springmvc 注解验证怎么配置,其实和springmvc xml验证没什么不同,就是配置请求方式不一样了
5 从springmodules下载包的sample中找validator-rules.xml,validation.xml拷贝到WEB-INF目录下, 打开观察一下这两个文件,你会发现他们和struts的validatorPlugin需要的两个配置文件一模一样 , 你甚至可以从你的struts项目中拷贝这两个文件拿过来修改修改即可工作.
validator-rules.xml预定义了一些验证器,比如required(必填项),minlength(最短长度), maxlength(最大长度), float(可输入小数),integer(可输入整数),mask(输入值要满足正则表达式要求), 这个文件大多数时候都不需要我们更改他们,除非为了拓展功能或者发现bug;
validation.xml定义了一些表单的验证规则,我们需要一个表单的验证功能就要在这个文件中配置一条验证信息. 这两个文件拷贝过来之后就可以配置验证器工厂和验证器了.
在applicationContext.xml中配置validatorFactory和beanValidator(为什么要在applicationContext中配置: 因为验证器可作为应用程序公用的组件,可以被所有的servlet共享):
- <!--
- 名字必须为messageSource,因为springmodules的jar包需要引用验证时需要引用名字为messageSource的bean
- 你可以试验一下把名字改,我试验之后是不是这个名字 前台显示的错误信息validator-rules.xml最上面注释掉的Validator Error Messages的key
- -->
- <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
- <property name="basename" value="messages" />
- </bean>
- <bean id="validatorFactory" class="org.springmodules.validation.commons.DefaultValidatorFactory">
- <property name="validationConfigLocations">
- <list>
- <value>WEB-INF/validator-rules.xml</value>
- <value>WEB-INF/validation.xml</value>
- </list>
- </property>
- </bean>
- <!--
- 在applicationContext.xml中配置validatorFactory和beanValidator
- (为什么要在applicationContext中配置: 因为验证器可作为应用程序公用的组件,可以被所有的servlet共享):
- -->
- <bean id="beanValidator" class="org.springmodules.validation.commons.DefaultBeanValidator">
- <property name="validatorFactory" ref="validatorFactory"/>
- </bean>
- <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
- <property name="prefix" value="WEB-INF/jsp/" />
- <property name="suffix" value=".jsp" />
- </bean>
6 打开validation.xml,在里面添加一个form,
- <form name="user">
- <field property="userName" depends="required"><!--depands 字段是配置需要满足的验证器,可配置多个-->
- <!--
- arg0是该字段的显示名,用于验证失败时显示提示信息
- key是定义在messageResource中的消息的key
- -->
- <arg0 key="用户名" />
- </field>
- <field property="password" depends="maxlength,required">
- <arg0 key="密码" />
- <arg1 name="maxlength" key="${var:maxlength}" resource="false" />
- <var>
- <var-name>maxlength</var-name>
- <var-value>10</var-value>
- </var>
- </field>
- </form>
7 配置需要的message, 为了在验证没通过时显示出错信息, 需要把示例文件validator-rules.xml最上面注释掉的Validator Error Messages拷贝到message.properties中,并且把它放在classpath下.同时需要在applicationContext.xml中配置messageSource,
- <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
- <property name="basename" value="messages" />
- </bean>
同时在message.properties中添加form字段的显示名称, 则本例的messages.properties全文如下:
- #english message file
- 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.
- common.messages.close=Close
- user.name=userName
- user.password=userPassword
8 编辑jsp表单页面login.jsp,
- <%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%>
- <%@ taglib uri="/WEB-INF/tld/c-rt.tld" prefix="c"%>
- <%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
- <%@ taglib uri="/WEB-INF/tld/spring-form.tld" prefix="form"%>
- <%@ taglib uri="http://www.springmodules.org/tags/commons-validator" prefix="validator" %>
- <validator:javascript formName="user" staticJavascript="true" xhtml="true" cdata="false" />
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=GB18030">
- <title>登录页面</title>
- </head>
- <body>
- <h1>欢迎访问,登录页面</h1>
- <form action="login.do" method="post" id="user" name="user" onsubmit="return validateUser(this);">
- <table>
- <tr>
- <td>
- 用户名:
- </td>
- <td>
- <spring:bind path="user.userName">
- <input type="text" id="userName" name="userName" value="${status.value}"/>
- <font color="red"><c:out value="${status.errorMessage}"/></font>
- </spring:bind>
- </td>
- </tr>
- <tr>
- <td>
- 密码:
- </td>
- <td>
- <spring:bind path="user.password">
- <input type="text" id="password" name="password" value="${status.value}"/>
- <font color="red"><c:out value="${status.errorMessage}"/></font>
- </spring:bind>
- </td>
- </tr>
- <tr>
- <td>
- <input type="submit" value="登录" >
- </td>
- <td></td>
- </tr>
- </table>
- </form>
- </body>
- </html>
上面的配置是javascript和后台一起验证的
启动javascript验证在页首需要加入
<validator:javascript formName="book" staticJavascript="true" xhtml="true" cdata="false" />
部署到tomcat并测试:http://localhost:8080/springValdiateAnonation/login.do
后台验证界面
客户端验证界面
我做得一个小例子在我的资源里大家可以下载http://download.csdn.net/source/3494112
项目是用eclipse做得包含了所有的jar包和文件直接运行即可
本文参考:http://blog.csdn.net/sunxing007/article/details/4660262
发表评论
-
主题:Spring MVC3 国际化配置
2012-04-13 08:30 738http://www.iteye.com/topic/1122 ... -
使用 Spring Data JPA 简化 JPA 开发
2012-04-13 08:30 862http://www.ibm.com/developerwor ... -
跟我学spring3 电子书下载(完)
2012-04-13 08:30 600http://www.iteye.com/topic/1122 ... -
spring 读取applicationContext方式
2012-04-12 08:02 985spring 读取applicationCont ... -
spring javamail
2012-04-11 08:00 715spring javamail 博客分类 ... -
Quartz在Spring中动态设置cronExpression
2012-04-11 08:00 619Quartz在Spring中动态设置cronEx ... -
spring定时器用Annotation实现
2012-04-10 08:28 748spring定时器用Annotation实现 ... -
spring 3 中使用注解的方式来进行任务调度。
2012-04-10 08:28 705spring 3 中使用注解的方式来进行任务调度。 ... -
spring定时器如何配置
2012-04-10 08:28 1006有两种流行Spring定时器配置:Java的Timer类 ... -
Spring在web应用中获得Bean的方法
2012-04-01 08:21 858Spring在web应用中获得Bean的方法 ... -
Spring3.0中的异常处理配置方法
2012-04-10 08:28 753Spring3.0中的异常处理配置方法 ... -
在Spring3中使用注解(@Scheduled)创建计划任务
2012-04-09 09:49 1222在Spring3中使用注解(@Scheduled ... -
利用 Spring 和 EHCache 做方法缓存处理〔转〕
2012-04-09 09:49 800利用 Spring 和 EHCache 做方法缓存处理〔 ... -
springmvc rest框架搭建中遇到的问题
2012-03-16 14:37 928springmvc rest框架搭建中遇到的问题(一) ... -
spring 3.0 应用springmvc 构造RESTful URL 详细讲解
2012-03-16 14:36 653http://badqiu.iteye.com/blog/47 ... -
MyBatis3整合Spring3的Transaction事务处理
2012-03-07 08:18 877MyBatis3整合Spring3的Transacti ... -
spring结合quartz的定时的2种方式
2012-03-02 09:21 736spring结合quartz的定时的2种方式 ... -
spring结合quartz的执行多任务的实现
2012-03-02 09:21 1828spring结合quartz的执行多任务的实现 ... -
在Spring中使用JTA事务管理(二)
2012-02-28 08:15 963在Spring中使用JTA事务管理(二) (20 ... -
spring 事务 不能rollback的问题终于解决了
2012-03-19 08:24 828spring 事务 不能rollback的问题 ...
相关推荐
使用spring3.0实现基于注解的validator,无侵入式开发。支持正则表达式。使用方法:解压缩后是一个java web工程,即可发布到web服务器中进行演示。
其中commons validator是一个可配置的验证框架,使用方式和工作原理都和struts用的ValidatorPlugIn一样。它可以通过配置生成js在客户端验证, 也可以配合具有验证功能的spring controller实现客户端验证. 本下载文件...
spring_validator验证 基业spring mvc3.0注解验证
我的博客中的《Spring MVC、hibernate validator和i18n》文章描述的项目的源代码,该文是对Spring mvc, validation和i18n的一个入门级的tutorial。我的博客地址是http://blog.csdn.net/zjysource
spring mvc校验框架所需的几个jar包hibernate-validator-6.0.7.Final.jar、logging-3.1.0.CR2.jar、validator-api-2.0.2.jar
Maven+Spring MVC +Hibernate Validate(服务端验证) 增删改 ajax请求 文件上传
表单验证插件:BootstrapValidator 日期选择插件:Datepicker for Bootstrap 弹层组件:Layer 数据图表:Echarts 表单美化插件:ICheck 树形视图插件:Ztree 主要功能包括注册和登录、商品浏览、个人信息管理、...
表单验证插件:BootstrapValidator 日期选择插件:Datepicker for Bootstrap 弹层组件:Layer 数据图表:Echarts 表单美化插件:ICheck 树形视图插件:Ztree 电子商城系统模版:小米官网 主要功能包括注册和登录、...
表单验证控件commons-validator-1.3.1表单验证控件commons-validator-1.3.1表单验证控件commons-validator-1.3.1表单验证控件commons-validator-1.3.1表单验证控件commons-validator-1.3.1表单验证控件commons-...
Javascript表单验证控件(Validator v1.05).rar
一款灵活通用的JavaScript验证组件,支持灵活多样的验证方式。 此为2.0版本,是在1.0基础架构上做了全新的调整, 希望能通过这个JS验证器小组件为我们码农们提供微小的帮助。 1、启用创建Validator方式,不再使用...
视图框架:Spring MVC 服务端验证:Blade Validator 任务调度:Spring Task 持久层框架:beetlsql 模板引擎:beetl 数据库连接池:Alibaba Druid 缓存框架:Ehcache 日志管理:SLF4J、LOGBACKUP 工具类:...
用Spring MVC+hibernate 写的一个HelloWorld小实例,加入了一个简单验证。
自己搭建的简单的Spring + Spring MVC + Mybatis框架 功能比较简单但是比较实用 初学者适用 需项目使用的请自行添加功能 集成功能 1.提供分页参数自动查询总数 2.实体校验(hibernate-validator) 3.单用户登录(监听...
Validator验证框架,STRUTS动态验证的规则与规范!
Validator验证框架 回顾ActionForm的表单验证,掌握Validator验证框架.zip
主要为大家详细介绍了Vue表单验证插件Vue Validator使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
主要给大家介绍了关于Spring MVC+FastJson+hibernate-validator整合的完整实例教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
bootstrapvalidator 表单验证bootstrapvalidator 表单验证bootstrapvalidator 表单验证bootstrapvalidator 表单验证
Javascript表单验证控件(Validator v1.05).rar --------------------------------- 内含以下两个文件: Validator.chm(详细的使用帮助文档) validator.js(源代码,当然没有prototype.js强大,但最...