zoukankan      html  css  js  c++  java
  • Struts2 中的Action分发

     Struts2  中的Action分发


            Struts2中Action不需要单独继承任何的特殊Action,当继承ActionSupport就支持分发,同时validate验证方法也支持分发,实现分发有以下两种形式:
    通过Struts2自定义的分发字符(!)完成Action分发:
    action格式为:action名!方法名.action。
    validate验证方法则为:validate+方法名,分发方法名首字母大写。如:validateLogin()
    index.jsp:

    <center>
         <s:actionerror name="error"/>
         <s:fielderror />
               <form action="user!login.action" method="post">
                   User ID:<input type="text" name="user.userid"/>
                                <br/>${fieldErrors["userid"][0]}<br/>
                   PassWord:<input type="password" name="user.password"/>
                                <br/>${fieldErrors["password"][0]}<br/>
                    <input type="submit" value="登录"/>
                    <input type="reset" value="重置"/>
              </form>
        </center>

    --------------------------------------------------------------------------------------------------------------------------
    在Action中不再覆写execute方法,直接定义一个login方法,而且该方法返回值类型为String。
    UserAction.java:
     public class UserAction extends ActionSupport {
      private User user = new User();
      public User getUser() {
       return user;
      }
      public void setUser(User user) {
       this.user = user;
      }
      public String login() {
       if (user.getUserid().equals("Hello")&& user.getPassword().equals("12345")) {
        ServletActionContext.getRequest().getSession().setAttribute("users", user);
        return "suc";
       }
       super.addActionError("用户名或密码错误!");
       return "input";
      }
      public void validateLogin() {
       if (user.getUserid() == null || user.getUserid().trim().equals("")) {
        super.addFieldError("userid", "用户ID不能为空!");
       }
       if (user.getPassword() == null || user.getPassword().trim().equals("")) {
        super.addFieldError("password", "密码不能为空!");
       }
      }
     }
    ------------------------------------------------------------------------------------------------------------------------
    struts.xml:
     <struts>
      <package name="login" namespace="/" extends="struts-default">
       <action name="user" class="org.wu.struts.action.UserAction">
        <result name="suc">/suc.jsp</result>
        <result name="input">/index.jsp</result>
       </action>
      </package>
     </struts> 
    -----------------------------------------------------------------------------------------------------------------------
    suc.jsp:
    <center>
         欢迎光临,${users.userid}
    </center>
    -----------------------------------------------------------------------------------------------------------------------
    二、任意定义分隔符,通过在struts.xml中的配置来进行分发的处理。

          <form action="user_login.action" method="post">

    ---------------------------------------------------------------------------------------
     <struts>
      <package name="login" namespace="/" extends="struts-default">
       <action name="user_*" class="org.wu.struts.action.UserAction" method="{1}">
        <!—- {1}表示取得在name中出现的第一个*,填写到method值中  -->
        <result name="suc">/suc.jsp</result>
        <result name="input">/index.jsp</result>
       </action>
      </package>
     </struts> 

  • 相关阅读:
    05_python_字典
    04_python_列表
    03_python_基本数据类型
    02_python_while循环/格式化输出/逻辑运算
    01_python_初始python
    vue中v-model的数据双向绑定(重要)
    vue中轮播图的实现
    侦听器watch 监听单个属性
    vue computed监听多个属性
    vue中ajax应用
  • 原文地址:https://www.cnblogs.com/yigerendehaibian/p/2932269.html
Copyright © 2011-2022 走看看