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

来源:互联网 发布:atom windows 编辑:程序博客网 时间:2024/06/05 03:18

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






0 0