用的文件:validator-rules.xml及调用validator-rules.xml的validation.xml文件。
applicationResources.property
validation.xml文件要在struts-config.xml文件中注册
注册方式:以插件折方式 如:
<!-- 以插件的形式注册框架中的验证文件 -->
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames"
value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
</plug-in>
以注册为例:
=======================================
主要代码如下:
Reg .jsp
<%@ page language="java" pageEncoding="GB18030"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>
<html>
<head>
<title>JSP for DynaActionForm form</title>
</head>
<body>
<html:form action="/reg">
cname : <html:text property="cname"/><html:errors property="cname"/><br/>
email : <html:text property="email"/><html:errors property="email"/><br/>
phone : <html:text property="phone"/><html:errors property="phone"/><br/>
age : <html:text property="age"/><html:errors property="age"/><br/>
<html:submit/><html:cancel/>
</html:form>
</body>
</html>
=====================================
applicationResources.property
error.null={0} cannot be null!
error.email=email is not correct!
error.number={0} must be a number!
error.minlength=minlength of {0} is {1}!
error.maxlength=maxlength of {0} is {1}!
error.range={0} must between {1} and {2}!
=================================================
validation.xml
<!DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3 //EN"
"http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">
<form-validation> <!-- 在这里写验证 -->
<formset> <!-- 写表单验证,可以写多个 -->
<form name="regForm"> <!-- 验证某个表单,name是ActionForm名字 -->
<!-- 验证属性 -->
<field property="cname" depends="required">
<msg name="required" key="error.null"/> <!-- key:消息key -->
<arg0 name="required" key="cname" resource="false"/> <!--key:参数值 -->
</field>
<field property="email" depends="required,email">
<msg name="required" key="error.null"/>
<arg0 name="required" key="email" resource="false"/> <!--key:参数值 -->
<msg name="email" key="error.email"/>
</field>
<field property="phone" depends="required,long,minlength,maxlength">
<msg name="required" key="error.null"/>
<arg0 name="required" key="phone" resource="false"/> <!--key:参数值 -->
<msg name="long" key="error.number"/>
<arg0 name="long" key="phone" resource="false"/>
<msg name="minlength" key="error.minlength"/>
<arg0 name="minlength" key="phone" resource="false"/>
<arg1 name="minlength" key="${var:minlength}" resource="false"/>
<var> <!-- 设定门限 -->
<var-name>minlength</var-name> <!-- name是规定的 -->
<var-value>7</var-value>
</var>
<msg name="maxlength" key="error.maxlength"/>
<arg0 name="maxlength" key="phone" resource="false"/>
<arg1 name="maxlength" key="${var:maxlength}" resource="false"/>
<var> <!-- 设定门限 -->
<var-name>maxlength</var-name> <!-- name是规定的 -->
<var-value>10</var-value>
</var>
</field>
<field property="age" depends="required,integer,intRange">
<msg name="required" key="error.null"/>
<arg0 name="required" key="age" resource="false"/>
<msg name="integer" key="error.number"/>
<arg0 name="integer" key="age" resource="false"/>
<msg name="intRange" key="error.range"/>
<arg0 name="intRange" key="age" resource="false"/>
<arg1 name="intRange" key="${var:min}" resource="false"/>
<arg2 name="intRange" key="${var:max}" resource="false"/>
<var> <!-- 设定门限:规定,设定max,min就可以了 -->
<var-name>min</var-name>
<var-value>0</var-value>
</var>
<var>
<var-name>max</var-name>
<var-value>100</var-value>
</var>
</field>
</form>
</formset>
</form-validation>
======================================
struts-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>
<data-sources />
<form-beans >
<!-- 定义动态ActionForm -->
<form-bean name="regForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="cname" type="java.lang.String" />
<form-property name="email" type="java.lang.String" />
<form-property name="phone" type="java.lang.String" />
<form-property name="age" type="java.lang.String" />
</form-bean>
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings >
<action
input="/reg.jsp"
name="regForm"
path="/reg"
scope="request"
type="prj9_1.action.RegAction" />
</action-mappings>
<message-resources parameter="prj9_1.ApplicationResources" />
<!-- 以插件的形式注册框架中的验证文件 -->
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames"
value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
</plug-in>
</struts-config>