用struts2 验证用户登录demo
--------》login.jsp 引入 标签 <%@taglib uri="/struts-tags" prefix="s"%>
-------》LoginAction
执行过程是这样:
表单提交给LoginAction,LoginAction先执行validate方法,检验loginName和password是否符合要求,
如果不符合,就会addFieldError (把错误信息放到Field栈里),如果Field栈里有错误信息的话,它就不会再执行execute方法,直接转发(Dispatcher)到INPUT即“input”所指定的错误处理页面, 这里为location="login.jsp",即让它返回到表单登录页去. 如果刚才validate方法中验证正确,即Field栈中没有错误信息,就会执行execute方法。在这里execute返回SUCCESS。
--------》login.jsp 引入 标签 <%@taglib uri="/struts-tags" prefix="s"%>
<body>
<s:form action="login">
<s:textfield name="userName" label="用户名称"/><br>
<s:password name="passWord" label="用户密码"/><br>
<s:submit value="登录" align="center"/>
</s:form>
</body>
-------》LoginAction
package com.xj.actions;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport {
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 execute() throws Exception {
boolean userNameOK = false;
boolean passWordOK = false;
if (getUserName().trim().equals("jim")){
userNameOK = true;
}else{
userNameOK = false;
addFieldError("userName", "您输入的用户名称不正确");
}
if (getPassWord().trim().equals("123")){
passWordOK = true;
}else{
passWordOK = false;
addFieldError("passWord", "您输入的用户密码不正确");
}
if(passWordOK && userNameOK){
return "success";
}
return "input";
}
@Override
public void validate() {
if (getUserName() == null || getUserName().trim().equals("")) {
addFieldError("userName", "请输入用户名称");
}
if (getPassWord() == null || getPassWord().trim().equals("")) {
addFieldError("passWord", "请输入用户密码");
}
}
}
执行过程是这样:
表单提交给LoginAction,LoginAction先执行validate方法,检验loginName和password是否符合要求,
如果不符合,就会addFieldError (把错误信息放到Field栈里),如果Field栈里有错误信息的话,它就不会再执行execute方法,直接转发(Dispatcher)到INPUT即“input”所指定的错误处理页面, 这里为location="login.jsp",即让它返回到表单登录页去. 如果刚才validate方法中验证正确,即Field栈中没有错误信息,就会执行execute方法。在这里execute返回SUCCESS。