struts2学习笔记七(第7讲.Struts2的输入校验续二)
Struts2的输入校验续二
主要介绍addActionError的用法:
一、修改com.test.action下的RegisterAction.java类(把addFieldError改成addActionError):
package com.test.action;import java.util.Calendar;import java.util.Date;import com.opensymphony.xwork2.ActionSupport;public class RegisterAction extends ActionSupport {private String username;private String password;private String repassword;private int age;private Date birthday;private Date graduation;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getRepassword() {return repassword;}public void setRepassword(String repassword) {this.repassword = repassword;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}public Date getGraduation() {return graduation;}public void setGraduation(Date graduation) {this.graduation = graduation;}@Overridepublic String execute() throws Exception {return SUCCESS;}@Overridepublic void validate() {if(null == username || username.length() < 6 || username.length() > 10){this.addActionError("username invalid");}if(null == password || password.length() <6 || password.length() > 10){this.addActionError("password invalid");}else if(null == repassword || repassword.length() < 6 || repassword.length() > 10){this.addActionError("repassword invalid");}else if(!password.equals(repassword)){this.addFieldError("password", "two passwords not the same");}if(age <= 0 || age > 150){this.addActionError("age should be between 1 and 150");}//if(null == birthday){//this.addFieldError("birthday", "birthday invalid");//}//if(null == graduation){//this.addFieldError("graduation", "graduation invalid");//}if(null != birthday && null != graduation){Calendar c1 = Calendar.getInstance();c1.setTime(birthday);Calendar c2 = Calendar.getInstance();c2.setTime(graduation);if(!c1.before(c2)){this.addActionError("birthday should be before graduation");}}}}
<body> <s:actionerror cssStyle="color:red"/> <s:form action="register"> <s:textfield name="username" label="username"></s:textfield> <s:password name="password" label="password"></s:password> <s:password name="repassword" label="repassword"></s:password> <s:textfield name="age" label="age"></s:textfield> <s:textfield name="birthday" label="birthday"></s:textfield> <s:textfield name="graduation" label="graduation"></s:textfield> <s:submit value=" submit "></s:submit> </s:form> </body>
<body> <table align="center" width="40%"><tr><td><s:actionerror cssStyle="color:red"/></td></tr></table> <s:form action="register" theme="simple"> <table align="center" width="40%" border="1"> <tr> <td>username </td> <td> <s:textfield name="username" label="username"></s:textfield> </td> </tr> <tr><td>password</td> <td> <s:password name="password" label="password"></s:password> </td> </tr> <tr><td>repassword</td> <td> <s:password name="repassword" label="repassword"></s:password> </td> </tr> <tr><td>age</td> <td> <s:textfield name="age" label="age"></s:textfield> </td> </tr> <tr><td>birthday</td> <td> <s:textfield name="birthday" label="birthday"></s:textfield> </td> </tr> <tr><td>graduation</td> <td> <s:textfield name="graduation" label="graduation"></s:textfield> </td> </tr> <tr><td><s:submit value=" submit "></s:submit></td> <td> <s:reset value=" reset "></s:reset> </td> </tr> </table> </s:form> </body>
<action name="register" method="abc"><result name="success">/success.jsp</result><result name="input">/register2.jsp</result></action>
public String abc() throws Exception {System.out.println("abc method invoked");return SUCCESS;}
。。。<action name="register" method="abc"><result name="success">/success.jsp</result><result name="input">/register2.jsp</result></action><action name="zly" method="xyz"><result name="success">/success.jsp</result><result name="input">/register2.jsp</result></action>
public String abc() throws Exception {System.out.println("abc() method invoked");return SUCCESS;}public void validateAbc(){System.out.println("validateAbc() invoked");}