struts2的验证机制
1. 服务端验证:如果action继承ActionSupport类,那么该action类将会继承ActionSupport的相关功能,如验证功能。执行流程为:
注意:如果执行的是Action中的execute方法,那么只会执行validate方法。如果执行的是自定义的action,如register方法,那么将会执行validateRegisteràvalidateàregister方法。
2. 案例
JSP页面(要在jsp页面加上<s:actionerror /> 或者<s:fielderror />)
<form action="test.action" method="post"> 用户名:<input type="text" name="user.name"/><br> 密 码:<input type="password" name="user.pwd"/><br> 年 龄:<input type="text" name="user.age" /><br> 邮 箱:<input type="text" name="user.email" /><br> <input type="submit" value="提交"/> <s:actionerror /> </form> |
struts.xml
<action name="test" class="com.zys.action.LoginAction" method="register"> <result name="success">/success.jsp</result> <result name="input">/login.jsp</result> </action> |
Action
publicclass LoginAction extends ActionSupport{
private User user;
public User getUser() { returnuser; } publicvoid setUser(User user) { this.user = user; }
publicvoid validateRegister(){ if(user.getAge()<1||user.getAge()>100){ System.out.println("age is illage"); this.addActionError("年龄不合法"); } System.out.println("validateRegister方法"); }
public String register(){ System.out.println("register方法"); return"success"; }
publicvoid validate(){ System.out.println("validate方法"); } } |