• struts2-12-用户自定义转换器(地址)


    一:登录主页面--->login

         根据登录注册的不同按钮进入不同的action及method

         

     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 <script>
    10    function login(){
    11        targetForm=document.forms[0];
    12        targetForm.action="Login!LoginMethod";
    13        targetForm.submit();
    14    }
    15     function register(){
    16            targetForm=document.forms[0];
    17            targetForm.action="Register!RegisterMethod";
    18            targetForm.submit();
    19     }
    20 </script>
    21 </head>
    22 
    23 <body>
    24  <s:fielderror escape="false"></s:fielderror>
    25  <font color="red">${requestScope.error}</font>
    26  <form action="actionName!methodName" method="post" >
    27   用户名:<input type="text" name="username"><br>
    28&nbsp;&nbsp;&nbsp;&nbsp;码:<input type="text" name="password"><br>
    29   详细地址:<input type="text" name="address">&nbsp;&nbsp;
    30         <input type="text" name="address">&nbsp;&nbsp;
    31         <input type="text" name="address"><br>
    32         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    33         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    34         <input type="text" name="address"/><br> 
    35  用户类型:
    36         <select name="usertype">
    37             <option value="管理员" >管理员</option>
    38             <option value="普通用户">普通用户</option>
    39         </select>
    40         <br/>
    41  <input type="button" value="登录"  onclick="login()">&nbsp;&nbsp;&nbsp;
    42  <input type="button" value="注册"  onclick="register()">
    43  </form>
    44 </body>
    45 </html>

    二:注册页面--->register.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=UTF-8">
     8 <title>注册页面</title>
     9 </head>
    10 <body>
    11     <form action="Register" method="post">
    12         用户名:<input type="text" name="username" /><br> 
    13         密码:<input type="password" name="password" /><br> 
    14         详细地址:<input type="text" name="address">&nbsp;&nbsp;
    15                <input type="text" name="address">&nbsp;&nbsp;
    16                <input type="text" name="address"><br>
    17                <input type="text" name="address"/>        
    18         <input type="submit" value="注册">
    19     </form>
    20 </body>
    21 </html>

    三:用户登录成功页面 --->adminWelcome.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.loginType}${sessionScope.loginUser}<a href="login.jsp">登录!</a><br>
    11 
    12 </body>
    13 </html>

    四:用户个人的相关信息   nuc.sw.vo.User.java

     1 package nuc.sw.vo;
     2 
     3 public class User {
     4     private String username;
     5     private String password;
     6     private String usertype;
     7     private Address address;
     8     public Address getAddress() {
     9         return address;
    10     }
    11     public void setAddress(Address address) {
    12         this.address = address;
    13     }
    14     public String getUsername() {
    15         return username;
    16     }
    17     public void setUsername(String username) {
    18         this.username = username;
    19     }
    20     public String getPassword() {
    21         return password;
    22     }
    23     public void setPassword(String password) {
    24         this.password = password;
    25     }
    26     public String getUsertype() {
    27         return usertype;
    28     }
    29     public void setUsertype(String usertype) {
    30         this.usertype = usertype;
    31     }
    32     
    33 }

    五:地址是四级联为了简化应使用一个变量来获取四个值  nuc.sw.vo--->Address.java

     1 package nuc.sw.vo;
     2 
     3 public class Address {
     4 
     5     private String province;
     6     private String city;
     7     private String county;
     8     private String street;
     9 
    10     public String getProvince() {
    11         return province;
    12     }
    13 
    14     public void setProvince(String province) {
    15         this.province = province;
    16     }
    17 
    18     public String getCity() {
    19         return city;
    20     }
    21 
    22     public void setCity(String city) {
    23         this.city = city;
    24     }
    25 
    26     public String getCounty() {
    27         return county;
    28     }
    29 
    30     public void setCounty(String county) {
    31         this.county = county;
    32     }
    33 
    34     public String getStreet() {
    35         return street;
    36     }
    37 
    38     public void setStreet(String street) {
    39         this.street = street;
    40     }
    41 
    42 }

    六:现将地址转换,需加一个 文件:xwork-conversion.properties

     1 nuc.sw.vo.Address=nuc.sw.utils.MyTypeConverter 

    七:在工具类中设置地址的值 --->nuc.sw.utils  MyTypeConverter

     1 package nuc.sw.utils;
     2 
     3 import java.util.Map;
     4 
     5 import org.apache.struts2.util.StrutsTypeConverter;
     6 
     7 import nuc.sw.vo.Address;
     8 
     9 public class MyTypeConverter extends StrutsTypeConverter {
    10 
    11     @Override
    12     public Object convertFromString(Map context, String[] values, Class toClass) {
    13         
    14         Address address = new Address();
    15         address.setProvince(values[0]);
    16         address.setCity(values[1]);
    17         address.setCounty(values[2]);
    18         address.setStreet(values[3]);
    19         return address;
    20     }
    21 
    22     @Override
    23     public String convertToString(Map context, Object o) {
    24 
    25         return null;
    26     }
    27 
    28 }

    八:nuc.sw.action--->LoginRegAction.java

       在相关的Action中执行相应方法并且配置相应的存储区域以便获取

     

     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     public User getModel() {
    12         return user;
    13     };
    14         public String LoginMethod() throws Exception {
    15             //登录逻辑
    16             if(user.getUsername().equals("张丹")&&user.getPassword().equals("123")){
    17                 ActionContext.getContext().getSession().put("loginUser",user.getUsername());
    18                 ActionContext.getContext().getSession().put("loginType",user.getUsertype());
    19                 return SUCCESS;
    20             }
    21             else{
    22                 ActionContext.getContext().put("error", "用户名或者密码错误");
    23                 return ERROR;
    24             }
    25         }
    26         public String RegisterMethod() throws Exception {
    27                 ActionContext.getContext().getSession().put("registerUser", user.getUsername());
    28                 ActionContext.getContext().getSession().put("registerProvince",user.getAddress().getProvince());
    29                 ActionContext.getContext().getSession().put("registerCity",user.getAddress().getCity());
    30                 ActionContext.getContext().getSession().put("registerCounty",user.getAddress().getCounty());
    31                 ActionContext.getContext().getSession().put("registerStreet",user.getAddress().getStreet());
    32                 return SUCCESS;
    33         }
    34         
    35 }

    九:配置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="false" />
     8  <constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
     9  <package name="default" namespace="/" extends="struts-default">
    10     <action name="Login"  method="LoginMethod" class="nuc.sw.action.LoginRegAction">
    11          <result name="success">/adminWelcome.jsp</result>
    12          <result name="error">/login.jsp</result>
    13          <result name="input">/login.jsp</result>
    14      </action>
    15     <action name="Register"  method="RegisterMethod" class="nuc.sw.action.LoginRegAction">
    16          <result name="success">/regLogin.jsp</result>
    17          <result name="error">/register.jsp</result>
    18          <result name="input">/register.jsp</result>
    19      </action>
    20  </package>
    21 </struts>

    十:注册成功后,显示注册地址信息--->regLogin.jsp

         可通过EL表达式/OGNL表达式获取相关值

     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 欢迎${sessionScope.registerUser}注册,<a href="login.jsp">请登录!</a><br>
    12 您的详细地址为:<br>
    13     ${sessionScope.registerProvince}
    14     ${sessionScope.registerCity}
    15     <s:property value="#session.registerCounty"/>
    16     <s:property value="#session.registerStreet"/>
    17 </body>
    18 </html>


    十一:项目结构:

    十二:运行结果:

  • 相关阅读:
    mongostat
    mongodb的游标方法
    mongodb升级
    mongodb的白名单
    mongodb的副本集方法
    mongodb的collection方法
    mongodb的db方法
    mongoexport
    mongoimport
    mongodb分片集群管理
  • 原文地址:https://www.cnblogs.com/Z-D-/p/5995256.html
Copyright © 2020-2023  润新知