1.定义一个Data类放入你所要验证及接收的数据。
public class Data {
String userName;
String pass;
public String getUserName() {
System.out.println("get name");
return userName;
}
public void setUserName(String userName) {
System.out.println("set name");
this.userName = userName;
}
public String getPass() {
System.out.println("get pass");
return pass;
}
public void setPass(String pass) {
System.out.println("set pass");
this.pass = pass;
}
}
这里我们用 ModelDriven 接收参数 。
用addFieldError (String fieldName, String errorMessage) 给一个属性添加错误信息。
可以在jsp页面中用 <s:fielderror fieldName="pass"/>
取出。
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
public class DataAction extends ActionSupport implements ModelDriven {
private Data data;
public String check(){
System.out.println("user.name:"+data.userName);
System.out.println("user.pass:"+data.pass);
if(!data.userName.equals("admin")){
this.addFieldError("username", "用户名输入错误");
return "userError";
}
else if (!data.pass.equals("123456")){
this.addFieldError("pass", "密码输入错误");
return "passError";
}
else{
return SUCCESS;
}
}
@Override
public Object getModel() {
if(data==null){
System.out.println("getModel......");
data=new Data();
}
return data;
}
}
login.jsp部分代码:
<form action="datacheck!check.action" method="post">
用户名:<input type="text" name="userName">
密码:<input type="text" name="pass">
<input type="submit"/>
</form>
这里我们采用动态方式调用action的方法,动态调用方法一定要加
<constant name="struts.enable.DynamicMethodInvocation" value= "true" />
Struts2 配置如下:
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value= "true" />
<package name="strutsDataCheck" namespace="/" extends ="struts-default">
<action name="datacheck" class="com.xz.data.DataAction" >
<result>/loginSuccess.jsp</result>
<result name="userError">/userError.jsp</result>
<result name="passError">/passError.jsp</result>
</action>
</package>
</struts>
loginSuccess.jsp:
<body>
<h1>登录成功</h1>
</body>
注意 :
要在passError.jsp 和 userError.jsp前加上 <%@taglib uri="/struts-tags" prefix="s" %>
这样就可以使用Struts2的标签库。
如 :
passError.jsp
<body>
<!-- 显示字段错误信息 -->
<s:fielderror fieldName="pass"/>
</body>
userError.jsp
<h1>Error Message</h1>
<!-- 显示字段错误信息 -->
<s:fielderror fieldName="username"/>
</body>
运行结果:
1.当用户名和密码都输入正确时:
2.当用户名输入不正确时:
3.当用户名输入正确 ,密码输入错误