首页 > 代码库 > struts2-6-登录注册校验(模型驱动)

struts2-6-登录注册校验(模型驱动)

一:用户封装到JavaBean中-->nuc.sw.vo-->User.java

 1 package nuc.sw.vo; 2  3 public class User { 4     private String username; 5     private String password; 6     public String getUsername() { 7         return username; 8     } 9     public void setUsername(String username) {10         this.username = username;11     }12     public String getPassword() {13         return password;14     }15     public void setPassword(String password) {16         this.password = password;17     }18 }

 

二:修改LoginRegAction.java   实例化模型User类,而且无set,get方法;

      登录和注册方法要分开相对应

 1 package nuc.sw.action; 2  3 import com.opensymphony.xwork2.ActionContext; 4 import com.opensymphony.xwork2.ActionSupport; 5 import com.opensymphony.xwork2.ModelDriven; 6  7 import nuc.sw.vo.User; 8  9 public class LoginRegAction extends ActionSupport implements ModelDriven<User>{

//实例化模型类
10 private User user=new User();11 12 //contextPath server.xml13 //必须实现 getModel()方法14 public User getModel() {15 return user;16 };17 //action 18 19 public String RegisterMethod() throws Exception {20 // public String LoginMethod() throws Exception {21 // TODO Auto-generated method stub22 //注册逻辑23 if(user.getUsername().equals("张丹")&&user.getPassword().equals("123")){24 ActionContext.getContext().getSession().put("registerUser",user.getUsername());25 ActionContext.getContext().getSession().put("registerPass",user.getPassword());26 return SUCCESS;27 }28 else{29 30 ActionContext.getContext().put("error", "用户名或者密码错误");31 return ERROR;32 }33 34 }35 public String LoginMethod() throws Exception {36 // TODO Auto-generated method stub37 //登录逻辑38 if(user.getUsername().equals("张丹")&&user.getPassword().equals("123")){39 ActionContext.getContext().getSession().put("loginUser",user.getUsername());40 ActionContext.getContext().getSession().put("loginPass",user.getPassword());41 return SUCCESS;42 }43 else{44 45 ActionContext.getContext().put("error", "用户名或者密码错误");46 return ERROR;47 }48 49 }50 @Override51 public void validate() {52 // TODO Auto-generated method stub53 if(user.getUsername()==null||user.getUsername().trim().equals(""))54 this.addFieldError("usernameError", "<font color=‘red‘>用户名不能为空</font>");55 if(user.getPassword()==null||user.getPassword().trim().equals(""))56 this.addFieldError("passwordError", "<font color=‘red‘>密码不能为空</font>");57 58 }59 }

 

三:修改struts.xml  -->action的method要分别对应

 1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE struts PUBLIC 3     "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" 4     "http://struts.apache.org/dtds/struts-2.3.dtd"> 5  6 <struts> 7  <constant name="struts.devMode" value="true" /> 8  <constant name="struts.enable.DynamicMethodInvocation" value="true"></constant> 9  <package name="default" namespace="/" extends="struts-default">10     <action name="LoginReg"  method="LoginMethod" class="nuc.sw.action.LoginRegAction">11          <result name="success">/welcome.jsp</result>12          <result name="error">/login.jsp</result>13          <result name="input">/login.jsp</result>14      </action>15      <action name="RegisterReg"  method="RegisterMethod"  class="nuc.sw.action.LoginRegAction">16          <result name="success">/register.jsp</result>17          <result name="error">/login.jsp</result>18          <result name="input">/login.jsp</result>19      </action>20  </package>21     <!-- Add packages here -->22 </struts>

 

四:修改login.jsp-->form属性action-->添加按钮的事件-->实现相对应的onclick()方法

 1 <%@ page language="java" contentType="text/html; charset=utf-8" 2     pageEncoding="utf-8"%> 3 <%@ taglib prefix="s" uri="/struts-tags"%> 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 5 <html> 6 <head> 7 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 8 <title>登录页面</title> 9 </head>10 <script>11    function login(){12        targetForm=document.forms[0];13        targetForm.action="LoginReg!LoginMethod";14        targetForm.submit();15    }16    function register(){17        targetForm=document.forms[0];18        targetForm.action="RegisterReg!RegisterMethod";19        targetForm.submit();20    }21 </script>22 <body>23  <s:fielderror escape="false"></s:fielderror>24  <font color="red">${requestScope.error}</font>25  <form action="actionName!methodName" method="post" >26   用户名:<input type="text" name="username"><br>27   密码:<input type="text" name="password"><br>28  <input type="button" value="登录" onclick="login()">29  <input type="button" value="注册" onclick="register()">30  </form>31 </body>32 </html>

 

五:动态方法的调用

1 <constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>

 

六:register.jsp

 1 <%@ page language="java" contentType="text/html; charset=utf-8" 2     pageEncoding="utf-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 7 <title>Insert title here</title> 8 </head> 9 <body>10 欢迎${sessionScope.registerUser}注册,请<a href="">查看详情</a>11 </body>12 </html>

 

 

七:项目结构

技术分享

 

八:运行结果

 (1)注册成功

技术分享

 

技术分享

 

 (2)用户名和密码为空

 技术分享

 

技术分享

 

(3)密码为空

技术分享

 

技术分享

 

 

(4)用户名为空

技术分享

 

技术分享

 

 

登录结果同上。

struts2-6-登录注册校验(模型驱动)