原文地址:https://www.cnblogs.com/ningvsban/p/3734427.html
1.struts2的action一般可以实现Action或者继承ActionSupport,一般都倾向于后者,ActionSupport也实现了Action接口
ActionSupport都validate方法,可以实现验证功能
对于action的请求,会根据参数来自动寻找相应的get和set方法进行赋值,比如下面例子中的action的请求中添加“account”参数,会自动调用setAccount方法为account赋值。
执行该action会首先执行validate()方法,验证不通过会进行跳转,跳转页面需要在struts.xml中配置“input”属性,否则跳转404
<action name="user_*" class="userAction" method="{1}">
<result name="success">/index.jsp</result>
<!--action类若发生验证错误执行-->
<result name="input">/login.jsp</result>
</action>
例子:
public void baseAction extends ActionSupport(){
public String account;
public void validate(){
//实现验证等逻辑
if(account==null){
//key-value形式
this.addFieldError("account", "账号不可以为空");
}
}
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getPassword() {
return password;
}
}
validate()方法验证不通过时错误信息的显示:
<%@ taglib prefix="s" uri="/struts-tags"%>
.
.
.<form id="loginform" name="login_form"
action="login/login_userLogin.action" method="post">
<ul>
<!--fieldName是后台错误信息的key-->
<s:fielderror fieldName="account"/>
<li><input type="text" name="username" id="username"</li>
<li><input type="password" name="password" id="password">
<li><input type="button" value="登录" id="sub"
onclick="check()" class="loginbtn"/></li>
</ul>
</form>