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> 

  • 相关阅读:
    [技巧] 使用Word2010直接编辑、发布博客→博客园cnblogs
    POJ 1201 Intervals【差分约束】
    HDU 2896 病毒侵袭【AC自动机】
    opengl中的gluOrtho2D【转】
    【转】x86和x64的含义和区别
    POJ 1704 Georgia and Bob【Nim博弈】
    POJ 1947 Rebuilding Roads【树状DP】
    POJ 3207/ POJ 3678 【2SAT】
    POJ 1067 取石子游戏【威佐夫博奕】
    apache+webdav的安装配置
  • 原文地址:https://www.cnblogs.com/yigerendehaibian/p/2932269.html
Copyright © 2011-2022 走看看