struts2 字段、非字段验证,自定义验证


    字段验证:  判断某个字段属性的输入是否有效
   非字段验证:  不只针对某个字段,而是针对多个字段的输入值之间的逻辑关系进行校验。

index.jsp

<%@taglib uri="/struts-tags" prefix="s"%>
    




Insert title here











ValidateAction.java
ActionSupport  类已经实现了Validateable 接口

package com.oracle.va;


import com.opensymphony.xwork2.ActionSupport;

public class ValidateAction extends ActionSupport{

	private static final long serialVersionUID = 1L;
	private int age;
	private int reage;
	private String idcare;
	
	
	public int getReage() {
		return reage;
	}


	public void setReage(int reage) {
		this.reage = reage;
	}


	public String getIdcare() {
		return idcare;
	}


	public void setIdcare(String idcare) {
		this.idcare = idcare;
	}


	public int getAge() {
		return age;
	}


	public void setAge(int age) {
		this.age = age;
	}


	public String execute(){
		return SUCCESS;
	}

}
ValidateAction-validation.xml



	
		
			20
			50
			age 在${min} 和 ${max}之间
		
	

 	 
 		 

 			
 		age 和reage 不一致
 		
 	


	
		
			18
			idcare 的长度大于18
		
	



在上面的 age和reage的就是必须一致,才能通过验证的方式是属于 字段验证

非字段验证的写法是::

		age
		reage
		
		age 和reage 不一致
	

还有一个不为空验证常用::

        name
        true
 
        name不为空
    



自定义验证器

–若需要普通的验证程序, 可以继承ValidatorSupport 类
–若需要字段验证程序, 可以继承FieldValidatorSupport 类

IDcardValidate.java
package com.oracle.va;

import com.opensymphony.xwork2.validator.FieldValidator;
import com.opensymphony.xwork2.validator.ValidationException;
import com.opensymphony.xwork2.validator.validators.FieldValidatorSupport;

public class IDcardValidate extends FieldValidatorSupport {
	private int length;//长度限制参数
	

	public int getLength() {
		return length;
	}


	public void setLength(int length) {
		this.length = length;
	}


	@Override
	public void validate(Object arg0) throws ValidationException {
		// TODO Auto-generated method stub
		ValidateAction v=(ValidateAction)arg0;
		if(v.getIdcare().length()>this.getLength()){

			addFieldError(getFieldName(), arg0);
		}
	}

}

自定义验证器的配置文件
       自定义验证器需要在类路径里的某个validators.xml 文件里注册验证框架首先在根目录下找validators.xml文件,没找到validators.xml文件, 验证框架将调用默认的验证设置,default.xml里面的配置信息.


validators.xml





    





你可能感兴趣的:(java,java,字段,非字段,自定义,Struts2)