之前我们提到过,struts可以自定义方法,即在struts.xml中的action元素内定义的method属性,属性值即为待执行的方法。也就是action类中的execute方法改成自己定义的方法。
那么对于我们自定义的方法要如何校验呢?
我们写一个小例子
1)一个LoginAction类,我们用到的是myExecute()方法。
public class LoginAction {
private String username;
private String password;
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 <span style="color:#FF0000;">myExecute()</span>
{
return "success";
}
2)在struts.xml中我们需要做这样的修改,添加method属性,属性值对应要执行的myExecute方法。
<action name="login1" class="cn.sict.struts2.LoginAction" <span style="color:#FF0000;">method="myExecute"</span>>
<result name="success">/result.jsp</result>
</action>
3)如果要做相应的验证,以前execute方法时,只要重写validate()方法即可。现在我们要添加一个名为"validate+MyExecute"即validateMyExecute()方法来做验证。
public void validateMyExecute()
{
}
其原理是通过反射来实现的。
这这里面,程序首先会执行自定义的validateMyExecute()方法,如果没有任何错误,再去执行myExecute()方法。如果出现错误则不执行myExecute()方法,流程转向input所对应的页面上。