自定义校验器实例

来源:互联网 发布:python 前端框架 编辑:程序博客网 时间:2024/06/08 14:10

1.创建校验器类MyValidator.java。该类继承于FieldValidatortSupport类

package action;import com.opensymphony.xwork2.validator.ValidationException;import com.opensymphony.xwork2.validator.validators.FieldValidatorSupport;public class MyValidator extends FieldValidatorSupport {private String str;public String getStr() {return str;}public void setStr(String str) {this.str = str;}@Overridepublic void validate(Object obj) throws ValidationException {//   被校验的字段名      String userName = super.getFieldName();        // 被校验字段的值        String value = super.getFieldValue(userName, obj).toString();         if (!str.equals(value)) {//被校验的字符串是否与制定的值相等        System.out.println(userName+","+value);            super.addFieldError(super.getFieldName(), obj);        }}}

2.注册校验器在src目录下创建validators.xml。注:一旦创建自定义校验器,则系统默认的校验器会失效,必须将系统默认的校验器注册在validators.xml文件中,才会生效。

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE validators PUBLIC        "-//Apache Struts//XWork Validator Definition 1.0//EN"        "http://struts.apache.org/dtds/xwork-validator-definition-1.0.dtd"><validators><validator name="test" class="action.MyValidator"></validator></validators>

3.MyValidatorAction.java

package action;import com.opensymphony.xwork2.ActionSupport;public class MyValidatorAction extends ActionSupport{/** *  */private static final long serialVersionUID = 3881597422005868510L;private String userName;private String userTelephone;private String userAddress;public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getUserTelephone() {return userTelephone;}public void setUserTelephone(String userTelephone) {this.userTelephone = userTelephone;}public String getUserAddress() {return userAddress;}public void setUserAddress(String userAddress) {this.userAddress = userAddress;}@Overridepublic String execute() throws Exception {return SUCCESS;}}

4.创建MyValidatorAction-validation.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.2//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd"><validators><field name="userName"><field-validator type="test"><param name="str">ADMIN</param><message>用户名ADMIN</message></field-validator></field></validators>

5.配置struts2.xml

<!DOCTYPE struts PUBLIC        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"        "http://struts.apache.org/dtds/struts-2.0.dtd"><struts><constant name="struts.i18n.encoding" value="utf-8" /><constant name="struts.custom.i18n.resources" value="globalMessages" /><package name="default" extends="struts-default"><action name="myValidatorAction" class="action.MyValidatorAction"><result name="success">/success.jsp</result><result name="input">/myValidator.jsp</result></action></package></struts>

6.myValidator.jsp

<%@ page language="java" contentType="text/html;charset=gb2312"%><%@ taglib prefix="s" uri="/struts-tags"%><html>  <head>     <title>手动校验数据</title>  </head>  <body >    <jsp:include page="index.html"></jsp:include><center><h4>添加联系人</h4><p/><s:form action="myValidatorAction" method="post"><s:textfield label="联系人姓名" name="userName"></s:textfield><s:textfield label="联系人电话" name="userTelephone"></s:textfield><s:textfield label="联系人地址" name="userAddress"></s:textfield>    <s:submit value="提交"/></s:form></center></body></html>

0 0
原创粉丝点击