本文摘自:http://www.blogjava.net/jacky9881/archive/2008/01/16/175701.html
这节介绍如何在SSH框架中使用Validator框架,Validator框架采用基于xml文件来配置验证规则,它主要依赖两个jar包:commons-validator-1.3.0.jar和oro-2.0.8.jar,要在SSH使用Validator框架,必须把这两个jar包引用进来,其实Struts框架已包含这两个jar包,所以我们不用再单独引入了。
要在SSH框架中使用Validator,更确切的说是在Struts框架中使用,可以采用插件机制把Validator加入到框架,这需要修改原来的struts-config.xml文件,增加配置ValidatorPlugIn插件,代码如下:
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/org/apache/struts/validator/validator-rules.xml,
/WEB-INF/validation.xml" />
<set-property property="stopOnFirstError" value="true" />
</plug-in>
这样当应用启动时,Struts框架就会加载ValidatorPlugIn插件。
validator-rules.xml文件是Validator框架自带的,它定义了一些常有的校验规则,而validation.xml是我们自己定义的,它针对某个应用,内容如下:
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.3.0//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_3_0.dtd">
<form-validation>
<formset>
<form name="registerForm">
<field property="register.username" depends="required">
<arg key="register.username" position="0"/>
</field>
<field property="register.password" depends="required,minlength">
<arg key="register.password" position="0"/>
<arg name="minlength" key="${var:minlength}" resource="false" position="1"/>
<var>
<var-name>minlength</var-name>
<var-value>6</var-value>
</var>
</field>
<field property="register.email" depends="required,email">
<arg key="register.email" position="0"/>
</field>
</form>
</formset>
</form-validation>
form元素的name属性指定要进行验证的表单,field元素的property属性指定要验证属性,depends定义了验证方式,在这里,我们定义了username属性不能为空,password属性不能为空,并且最小长度不能小于6,email属性必须是合法的邮件地址。定义验证方式之后,我们还必须修改资源文件registermessages.properties,增加以下内容:
# Errors
errors.header=<h3><fontcolor="red">ValidationError</font></h3>Youmustcorrectthefollowingerror(s)beforeproceeding:
errors.required={0}isrequired.
errors.minlength={0}cannotbelessthan{1}characters.
errors.email={0}isaninvalide-mailaddress.
这资源文件中{0}对应着<arg key="" position="0"/>,{1}对应着<arg key="" position="1"/>,以此类推,如果有验证错误产生,将用key的值替换{n}
此外,我们还要修改struts-config.xml文件,修改内容见粗体:
//把原来的DynaActionForm 改为DynaValidatorForm
<form-beans>
<form-bean name="registerForm"
type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="register" type="test.register.entity.Register" />
</form-bean>
</form-beans>
//把原来的validate="false"改为validate="true"
<action-mappings>
<action name="registerForm" path="/register" scope="request"
type="test.register.action.RegisterAction" validate="true"
input="/register.jsp">
<forward name="success" path="/registerSuccess.jsp" />
</action>
</action-mappings>
修改错误显示的样式,我们在register.jsp中,替换原来<html/errors>为
<logic:messagesPresent>
<bean:message key="errors.header"/>
<ul>
<html:messages id="error">
<li><bean:write name="error"/></li>
</html:messages>
</ul><hr />
</logic:messagesPresent>
注意在页面上加入
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
这样,我们运行程序,校验失败的效果如图:
分享到:
相关推荐
基于Struts+Hibernate+Spring的Web_应用开发
Java.Web开发 JSP Servlet. Struts Spring Hibernate Ajax
《JavaWeb整合开发完全自学手册》主要介绍Struts、Hibernate、Spring、Eclipse的基础知识,如何整合这4个开源框架进行J2EE开发,如何基于MyEclipseIDE进行开发,J2EE开发的基础和基础环境搭配,Struts、Hibernate、...
《Java Web整合开发王者归来(JSP+Servlet+Struts+Hibernate+Spring)》全面介绍了Java Web开发中的各种相关技术及知识。全书分为9篇,内容层次清晰,难度循序渐进。第1篇为入门篇,内容包括Java Web开发概述等;第2篇...
《Struts Hibernate Spring集成开发宝典》以Struts,Hibernate,Spring为核心详细地讲解了这三个组件的基础知识和基本使用方法,并通过一系列集成开发实例讲解了这三个组件在J2EE项目中的应用。《Struts Hibernate ...
J2EE企业应用实战:Struts ...书的最后配备了两个实例,均采用了贫血模式的架构设计,以便于读者更快地进入J2EE 应用开发。 还介绍了Tomcat 和Jetty 两个开源Web 服务器的详细用法,以及J2EE 应用的几种常用架构。
J2EE企业应用实战:Struts ...书的最后配备了两个实例,均采用了贫血模式的架构设计,以便于读者更快地进入J2EE 应用开发。 还介绍了Tomcat 和Jetty 两个开源Web 服务器的详细用法,以及J2EE 应用的几种常用架构。
<<Java Web 基于Spring Struts Hibernate 轻量级架构开发>>书中7-12,13章
在《开发者突击:Java Web主流框架整合开发(J2EE+Struts+Hibernate+Spring)》架构讲解的过程中,穿插介绍了JDBC、Log4j、Sitemesh、JUnit技术。 随书附赠光盘内容包括《开发者突击:Java Web主流框架整合开发(J2EE+...
Struts Spring Hibernate 整合教程
一种基于Struts Spring Hibernate的整合,付强,黄孝建,目前很多应用系统是建立在WEB基础上,基于B/S结构的Web应用程序也成为Internet上使用最为广泛的应用开发技术。本文才用广泛的MVC设计模�
JAVA WEB整合开发实例精通:Struts+Hibernate+Spring
基于Struts Spring Hibernate的整合应用,袁俊峰,孟祥武,目前,基于Web的应用程序越来越受到关注, 而Java以其独特的跨平台和对网络程序的良好支持成为开发Web程序的首选。然而随着系统规模的
本书分为6大部分,共33章,介绍了Struts1框架、Hibernate框架、Spring框架和Struts2框架的开发环境配置、框架技术基础,Struts1框架和Spring框架的整合,Struts1框架和Hibernate框架的整合,Struts1框架、Hibernate...
基于Struts+Hibernate+Spring的整合架构及其在Web开发中的应用.pdf 基于Struts+Spring+Hibernate架构的轻量级J2EE的研究与应用.pdf 基于Struts+Spring+Hibernate架构的进销存管理系统的设计与实现.pdf 基于...
精通Eclipse整合Web开发——Struts,Spring,Hibernate,JBPM 图书馆下载的,很不容易。 不是很清晰,如果介意的,请不要下载,不要拍砖。 总共有三部分。