struts2验证

验证的问题,想到了一个办法,那就是我用个error.jsp专门用来显示错误信息的,然后用户如果进去了,就知道自己错在哪里了,再返回就行了。这样struts.xml中的result类型就不再为redirectAction或者chain了。
我也不知道到底是怎么回事,为什么当result类型为这俩的时候就不再显示那个错误信息了。

两种方法验证:validate()方法,如
public void validate() {
        
		if(classification==null||classification.length()<=0){
			this.addFieldError("classification", "classification is required");	
		}
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
    	session.beginTransaction();
    	Query query = session.createQuery("from Classification as classification order by classification.art_id");
    	list = query.list();
    	for(int i = 0;i<list.size();i++){
    		Classification theClassification = (Classification)list.get(i);
    		if(theClassification.getClasses().equals(classification)){
    			this.addFieldError("classification", "classification is the same as previous");	
    		}
    		break;
    	}
    	
}

如果要验证是否为什么类型的话,就string.matches(.....);


第二种用-validation.xml来验证,java代码如:
 public String execute() throws Exception {


    	if (isInvalid(getEmail())) return INPUT;


        if (isInvalid(getPassword())) return INPUT;


        return SUCCESS;


    }
    private boolean isInvalid(String value) {
        return (value == null || value.length() == 0);
    }

你可能感兴趣的:(struts2验证)