Struts2 对Action中所有方法进行输入校验、单个方法进行校验

index.jsp:

 <body>
  		<s:fielderror />
    	<form action="${pageContext.request.contextPath }/cn/person_add.do" method="post">
    		<table>
    			<tr>
    				<td>用户名:</td>
    				<td><input name="userName"  type="text" value="${userName }" /></td>
    			</tr>
    			<tr>
    				<td>手机号:</td>
    				<td><input name="phone"  type="text"  value="${phone }"  /></td>
    			</tr>
    			<tr>
    				<td colspan="2"><input type="submit" value="登录" /></td>
    			</tr>
    		</table>
    	</form>
  </body>


action:

public class PersonAction extends ActionSupport {
	private static final long serialVersionUID = 1L;
	private String userName;
	private String phone;
	private String message;

	public String add(){
		message="添加成功";
		return "message";
	}
	
	public String update(){
		message="更新成功";
		return "message";
	}
	
	@Override
	public void validate() {
		if(userName==null || userName.trim().equals("")){
			// 当校验失败时,通过addFieldError为字段添加校验失败信息
			// 在页面中通过 <s:fielderror /> 显示失败信息
			// 当校验失败以后,Struts会默认调用一个名为input的result所以需要在Struts的Action里面配置input
			addFieldError("userName", "用户名不能为空");
		}
		if(phone==null || phone.trim().equals("")){
			addFieldError("phone", "手机号不能为空");
		}else{
			if(!Pattern.compile("^1[358]\\d{9}$").matcher(phone).matches()){
				addFieldError("phone", "手机号格式不正确");
			}
		}
	}
	
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	
	public String getPhone() {
		return phone;
	}

	public void setPhone(String phone) {
		this.phone = phone;
	}

	public String getMessage() {
		return message;
	}

	public void setMessage(String message) {
		this.message = message;
	}
}

struts.xml

<struts>
<constant name="struts.118n.encoding" value="UTF-8"></constant>
	<constant name="struts.action.extension" value="do"></constant>
	<package name="mainPackage" namespace="/cn" extends="struts-default">
		<global-results>
			<result name="message">/WEB-INF/message.jsp</result>
		</global-results>
		<action name="person_*" class="cn.person.PersonAction" method="{1}" >
			<result name="input">/index.jsp</result>
		</action>
	</package>
</struts>    


验证:


对单个方法进行校验

对单个方法进行校验更简单,只需要将重 写的ActionSupport的validate  改成  validateXxxx()即可,即validate+要校验的方法名称(首字母大写)例:

	public void validateUpdate() {
		if(userName==null || userName.trim().equals("")){
			// 当校验失败时,通过addFieldError为字段添加校验失败信息
			// 在页面中通过 <s:fielderror /> 显示失败信息
			// 当校验失败以后,Struts会默认调用一个名为input的result所以需要在Struts的Action里面配置input
			addFieldError("userName", "用户名不能为空");
		}
		if(phone==null || phone.trim().equals("")){
			addFieldError("phone", "手机号不能为空");
		}else{
			if(!Pattern.compile("^1[358]\\d{9}$").matcher(phone).matches()){
				addFieldError("phone", "手机号格式不正确");
			}
		}
	}






posted @ 2015-10-13 17:22  Bodi  阅读(268)  评论(0编辑  收藏  举报