输入校验

来源:互联网 发布:windows.old删不干净 编辑:程序博客网 时间:2024/04/29 04:21

对于输入校验struts2提供了两种实现方式

(1)采用手工编码代码实现

新建的action类必须继承ActionSupport才能重写validate方法; validate方法对所有的方法进行校验,如果发现校验信息错误调用方法添加错误信息。

如果系统的addFieldError方法中存在校验错误信息,则转发到input视图中的result,通过 <s:fielderror/>进行查看.

action类

package person;import java.util.regex.Pattern;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;public class Person extends ActionSupport{/** *  */private static final long serialVersionUID = -2077914567436999957L;private String name;private String moble;public String getMoble() {return moble;}public void setMoble(String moble) {this.moble = moble;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String update(){ActionContext.getContext().put("message", "更新成功");return "message";}public String save(){ActionContext.getContext().put("message", "保存成功");return "message";}@Overridepublic void validate() {//会对action中的所有方法去校验if(this.name==null || "".equals(this.name.trim())){this.addFieldError(name, "用户名不能为空");}if(this.moble==null || "".equals(this.moble.trim())){this.addFieldError(moble, "手机号不能为空");}else{if(!Pattern.compile("^1[358]\\d{9}$").matcher(this.moble).matches()){this.addFieldError(moble, "手机号格式不正确");}}}}

struts.xml

<struts><package name="validate" namespace="/person" extends="struts-default" ><action name="person_*" class="person.Person" method="{1}" ><result name="message">/WEB-INF/page/message.jsp</result><result name="input">/index.jsp</result></action></package></struts>    

jsp

  <body>  <s:fielderror/><form action="${pageContext.request.contextPath}/person/person_save.action" method="post">用户名:<input name="name" type="text"/>不能为空<br/>电话号码:<input name="moble" type="text"/>不能为空,符合手机号格式第一位为1,二位为3,5,8,后接9位数字<br/><input type="submit" value="提交"/></form>  </body></html>


(2)基于xml配置方式实现

0 0
原创粉丝点击