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", "手机号格式不正确"); } } }