`
ynp
  • 浏览: 428582 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用struts2 验证用户登录demo

阅读更多
用struts2 验证用户登录demo
--------》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。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics