• struts2-4-登录校验(用户类型)


    一:登录页面:login.jsp

    复制代码
     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 <body>
    11  <s:fielderror escape="false"></s:fielderror>
    12  <font color="red">${requestScope.error}</font>
    13  <form action="loginReg" method="post" >
    14   用户名:<input type="text" name="username"><br>
    15   密码:<input type="text" name="password"><br>
    用户类型:
      <select  name="userType">
         <option value="管理员">管理员</option>
         <option value="普通用户">普通用户</option>
       </select>
    16  <input type="submit" value="登录">
    17  </form>
    18 </body>
    19 </html>
    复制代码

    二:跳转到action   nuc.sw.action-->LoginRegAction

    复制代码
     1 package nuc.sw.action;
     2 
     3 import com.opensymphony.xwork2.ActionContext;
     4 import com.opensymphony.xwork2.ActionSupport;
     5 
     6 public class LoginRegAction extends ActionSupport{
     7     private String username;
     8     private String password;
     9     private String userType;
    10     public String getUsername() {
    11         return username;
    12     }
    13 
    14     public void setUsername(String username) {
    15         this.username = username;
    16     }
    17 
    18     public String getPassword() {
    19         return password;
    20     }
    21 
    22     public void setPassword(String password) {
    23         this.password = password;
    24     }
    25   public String getUserType() {
    		return userType;
    	}
    
    	public void setUserType(String userType) {
    		this.userType = userType;
    	}
    26     @Override
    27     public String execute() throws Exception {
    28 //    public String LoginMethod() throws Exception {
    29         // TODO Auto-generated method stub
    30         //登录逻辑
    31         if(username.equals("zd")&&password.equals("123")){
    32             ActionContext.getContext().getSession().put("user", username);
    33             ActionContext.getContext().getSession().put("pass", password);
                    ActionContext.getContext().getSession().put("type", userType);
    34             return SUCCESS;
    35         }
    36         else{
    37             
    38             ActionContext.getContext().put("error", "用户名或者密码错误");
    39             return ERROR;
    40         }
    41         
    42     }
    43     @Override
    44     public void validate() {
    45         // TODO Auto-generated method stub
    46         if(username==null||username.trim().equals(""))
    47             this.addFieldError("usernameError",  "<font color='red'>用户名不能为空</font>");
    48         if(password==null||password.trim().equals(""))
    49             this.addFieldError("passwordError",  "<font color='red'>密码不能为空</font>");
    50         
    51     }
    52 }
    复制代码

    三:修改配置文件struts.xml

    复制代码
     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  <package name="default" namespace="/" extends="struts-default">
     9     <action name="loginReg" class="nuc.sw.action.LoginRegAction">
    10          <result name="success">/welcome.jsp</result>
    11          <result name="error">/login.jsp</result>
    12          <result name="input">/login.jsp</result>
    13      </action>
    14  </package>
    15     <!-- Add packages here -->
    16 </struts>
    复制代码

    四:登录成功页面   welcome.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.type}${sessionScope.user}登录;
    11 </body>
    12 </html>
    复制代码

    五:action标签的method属性的取值

     1 public String LoginMethod() throws Exception  去@override 

    1 <action name="loginReg" class="nuc.sw.action.LoginRegAction" method="LoginMethod">

    六:使用ActionSupport所提供的方法

    复制代码
    1 @Override
    2     public void validate() {
    3         // TODO Auto-generated method stub
    4         if(username==null||username.trim().equals(""))
    5             this.addFieldError("usernameError", "用户名不能为空");
    6         if(password==null||password.trim().equals(""))
    7             this.addFieldError("passwordError", "密码不能为空");
    8         
    9     }
    复制代码

    七:修改struts.xml  获取校验的数据

     1 <result name="input">/login.jsp</result> 

    八:修改login.jsp 在登录页面显示错误信息

    1  <%@ taglib prefix="s" uri="/struts-tags"%>
    2 <s:fielderror escape="false"></s:fielderror>

    九:项目结构:

    十:运行结果:

     

    正确:

     

     

    错误:

     

    数据校验:

     

  • 相关阅读:
    mybatis-plus 中的LocalDateTime, LocalDate, LocalTime
    mybatis plus 中的Serializable
    JavaSE: FileWriter类 & FileReader类
    JavaSE: IO流的概念
    JavaSE: File类
    JavaSE: 自定义异常
    JavaSE: 异常的抛出
    Vocabulary: hoarse
    JavaSE: finally的使用
    Vocabulary: appalling
  • 原文地址:https://www.cnblogs.com/Z-D-/p/5918069.html
Copyright © 2020-2023  润新知