chenyuanboygirl 发表于 2013-2-6 09:51:42

Validator框架

参照:http://www.blogjava.net/nokiaguy/archive/2009/02/12/254421.html
【第1步】建立ValidatorExamForm类

package com.yourcompany.struts.form;import org.apache.struts.action.ActionForm;import org.apache.struts.validator.ValidatorForm;/*** MyEclipse Struts * Creation date: 04-19-2010 ** XDoclet definition: * @struts.form name="validatorExamForm" */public class ValidatorExamForm extends ValidatorForm {//必须从ValidatorForm继承/* * Generated fields *//** email property */private String email;/** age property */private String age;/** name property */private String name;/* * Generated Methods *//*** Returns the email. * @return String */public String getEmail() {return email;}/*** Set the email. * @param email The email to set */public void setEmail(String email) {this.email = email;}/*** Returns the age. * @return String */public String getAge() {return age;}/*** Set the age. * @param age The age to set */public void setAge(String age) {this.age = age;}/*** Returns the name. * @return String */public String getName() {return name;}/*** Set the name. * @param name The name to set */public void setName(String name) {this.name = name;}}

【第2步】建立ValidatorExamAction类
* Generated by MyEclipse Struts * Template path: templates/java/JavaClass.vtl */package com.yourcompany.struts.action;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import com.yourcompany.struts.form.ValidatorExamForm;/*** MyEclipse Struts * Creation date: 04-19-2010 ** XDoclet definition: * @struts.action path="/validatorExam" name="validatorExamForm" input="/form/validatorExam.jsp" scope="request" validate="true" */public class ValidatorExamAction extends Action {/* * Generated Methods *//*** Method execute * @param mapping * @param form * @param request * @param response * @return ActionForward */public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) {ValidatorExamForm validatorExamForm = (ValidatorExamForm) form;// TODO Auto-generated method stubreturn null;}}

【第3步】配置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 >   <data-source key="datasource" type="org.apache.commons.dbcp.BasicDataSource">       <set-property property="password" value="" />       <set-property property="minCount" value="1" />       <set-property property="maxCount" value="10" />       <set-property property="username" value="root" />       <set-property property="driverClassName" value="org.gjt.mm.mysql.Driver" />       <set-property property="description" value="for struts attack aolution" />       <set-property property="url" value="jdbc:mysql://localhost:3306/cytest" />       <set-property property="readOnly" value="false" />       <set-property property="autoCommit" value="true" />   </data-source>   </data-sources>    <form-beans >    <form-bean name="AttackSolutionForm" type="com.yourcompany.struts.form.AttackSolutionForm" />    <form-bean name="showExceptionForm" type="com.yourcompany.struts.form.ShowExceptionForm" />    <form-bean name="validatorExamForm" type="com.yourcompany.struts.form.ValidatorExamForm" /> </form-beans><action-mappings >    <action      attribute="AttackSolutionForm"      input="/form/attackSolution.jsp"      name="AttackSolutionForm"      path="/attackSolution"      scope="request"      type="com.yourcompany.struts.action.AttackSolutionAction">      <set-property property="cancellable" value="true" />      <forward name="success" path="/form/attackSolution.jsp" />    </action>    <action      attribute="showExceptionForm"      input="/form/showException.jsp"      name="showExceptionForm"      path="/showException"      scope="request"      type="com.yourcompany.struts.action.ShowExceptionAction">      <set-property property="cancellable" value="true" />      <exception      key="usernameException"      path="/form/showException.jsp"      type="com.yourcompany.exception.UserNameException" />    </action>    <action      attribute="validatorExamForm"      input="/form/validatorExam.jsp"      name="validatorExamForm"      path="/validatorExam"      scope="request"      type="com.yourcompany.struts.action.ValidatorExamAction">      <set-property property="cancellable" value="true" />    </action></action-mappings><message-resources parameter="com.yourcompany.struts.ApplicationResources" /><plug-in className="org.apache.struts.validator.ValidatorPlugIn">    <set-property property="pathnames" value="/WEB-INF/validator-rules.xml, /WEB-INF/validator.xml" /></plug-in>      </struts-config>
【第4步】建立validatorExam.jsp

<%@ page language="java" pageEncoding="gb2312"%><%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%> <html> <head><title>JSP for ValidatorExamForm form</title></head><body><html:form action="/validatorExam">email : <html:text property="email"/><html:errors property="email"/><br/>age : <html:text property="age"/><html:errors property="age"/><br/>name : <html:text property="name"/><html:errors property="name"/><br/><html:submit/><html:cancel/></html:form></body></html>

【第5步】配置validator.xml文件

<?xml version="1.0" encoding="GBK" ?><!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="validatorExamForm">            <field property="name" depends="required,maxlength,minlength,mask">                  <msg name="required" key="error.name.blank" />                  <msg name="minlength" key="error.name.minLength" />                  <msg name="maxlength" key="error.name.maxLength" />                  <msg name="mask" key="error.name.alphanum" />                  <arg name="minlength" key="${var:minlength}" position="0" resource="false" />                  <arg name="maxlength" key="${var:maxlength}" position="0" resource="false" />                  <var>                      <var-name>minlength</var-name>                      <var-value>5</var-value>                  </var>                  <var>                      <var-name>maxlength</var-name>                      <var-value>10</var-value>                  </var>                  <var>                      <var-name>mask</var-name>                      <var-value>^*$</var-value>                  </var>            </field>            <field property="age" depends="required,integer,intRange">                  <msg name="required" key="error.age.blank" />                  <msg name="integer" key="error.age.integer" />                  <msg name="intRange" key="error.age.intRange" />                  <arg name="intRange" key="${var:min}" position="0" resource="false" />                  <arg name="intRange" key="${var:max}" position="1" resource="false" />                  <var>                      <var-name>min</var-name>                      <var-value>18</var-value>                  </var>                  <var>                      <var-name>max</var-name>                      <var-value>60</var-value>                  </var>                </field>            <field property="email" depends="required,email">                  <msg name="required" key="error.email.blank" />                  <msg name="email" key="error.email.invalid" />            </field>          </form>      </formset></form-validation>

【第6步】在ApplicationResources.properties文件中添加错误信息
error.name.blank = 姓名不能为空error.name.minLength = 姓名的长度不能小于{0}error.name.maxLength = 姓名的长度不能大于{0}error.name.alphanum = 姓名必须由字母和数字组成error.age.blank = 年龄不能为空error.age.integer = 年龄必须为数字error.age.intRange = 年龄必须在{0}和{1}之间
页: [1]
查看完整版本: Validator框架