Struts2校验器验证出错没有跳转到input视图

真的是纸上得来终觉浅,绝知此事要躬行。

校验器配置的刚刚好,struts.xml写的刚刚好,Action也 “毛” 问题啊,就是校验出错怎么也不跳到input视图下,直接跳到成功页面,气死我也。

平时没继承ActionSupport也没什么事,这下翻车了。整了半天,帖子也翻了不少,仍旧没找到问题。突然灵机一动,input来自哪?在哪声明的?Action接口嘛!你都没实现Action接口,也没继承它的子类,人家凭什么给你返回input。so 继承一下就OK啦。

附上代码:

UserAction.java

package com.hncj.edu;

import com.opensymphony.xwork2.ActionSupport;

public class UserAction extends ActionSupport{
	private String address;
	private int age;
	private String password;
	private String repassword;
	private String userName;

	public String getAddress() {
		return address;
	}

	public int getAge() {
		return age;
	}

	public String getPassword() {
		return password;
	}

	public String getRepassword() {
		return repassword;
	}

	public String getUserName() {
		return userName;
	}

	public void setAddress(String address) {
		this.address = address;
	}

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

	public void setPassword(String password) {
		this.password = password;
	}

	public void setRepassword(String repassword) {
		this.repassword = repassword;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String save() {
		return "success";
	}
}

struts.xml




	
		
			/save.jsp
			/index2.jsp
		
	

关键是校验文件的写法,位置的放法:

命名规则:ActionName-validation.xml   (ActionName为类的名字) 该文件和action放在同一个包下。

该文件的dtd约束可以在 /struts2-core-2.5.16.jar /xwork-validator-1.0.3.dtd 文件中复制。

字段校验的类型可以在 com/opensymphony/xwork2/validator/validators/default.xml 文件中查找,有如下类型:


    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

UserAction-validation.xml的示例写法:




	
		
			用户名不能为空
		
	
	
		
			[a-zA-Z]{4,6}
			密码必须为4-6位大小写字母
		
	
	
		repassword
		password==repassword
		两次密码不一致	
	
	
		age
		0
		150
		年龄必须在${min}-${max}之间
	

index2.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>




Insert title here


	
用户登录
用户名:
密码:
重复密码:
年龄:
地址:

save.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>




Insert title here


	save successfully

 

你可能感兴趣的:(struts校验器)