validate()方法会校验action中所用与execute()方法签名相同的方法
如果系统中的fieldErors 包含信息,则会转发到input的result在jsp中 可以调用<s:fielderror/>
package com.bjsxt.struts2.user.action;
import java.util.regex.Pattern;
import com.opensymphony.xwork2.ActionSupport;
public class UserAction extends ActionSupport {
@Override
public void validate() {
if (this.name == null || "".equals(this.name.trim())) {
this.addFieldError("name", "名字不能为空");
}
if (this.tel == null || "".equals(this.tel.trim())) {
this.addFieldError("tel", "号码不能为空");
}else {
if (!Pattern.compile("^(13[0-9]|15[0|3|6|7|8|9]|18[8|9])//d{8}$").matcher(this.tel).matches()) {
this.addFieldError("tel", "电话号码格式不对");
}
}
}
private String name;
private String tel;
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
@Override
public String execute() throws Exception {
System.out.println("execute()");
return SUCCESS;
}
public String add() {
System.out.println("add()");
return SUCCESS;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
<action name="user"
class="com.bjsxt.struts2.user.action.UserAction" method="add">
<result>/user_add_success.jsp</result>
<result name="input">/ic.jsp</result>
</action>
<%@ page isELIgnored="false"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<body>
你被拦截 <s:fielderror/>
</body>