strus2 Action配置

struts.xml:

<action name="user_addInput"
                class="org.zttc.struts01.action.UserAction"
                method="addInput">
            <result name="success">/WEB-INF/user/addInput.jsp</result>
        </action>
        
        <action name="user_add"
                class="org.zttc.struts01.action.UserAction"
                method="add">
            <result name="success">/WEB-INF/user/add.jsp</result>
        </action>
        <action name="user_list"
                class="org.zttc.struts01.action.UserAction"
                method="list">
            <result name="success">/WEB-INF/user/list.jsp</result>
        </action>

<!-- 可以为一个Action写多个方法进行对应,这样可以减少Action的数量,但是无法减少配置的数量  -->

java:

package org.zttc.struts01.action;
/**import导包省略*/
public class UserAction {

    private String username;
    private String password;


    public String execute(){
        System.out.println("Hello Struts2!");
        return "success";
    }
    
    public String addInput(){
        System.out.println("UserAction addInput()");
        return "success";//基于通配符
    }
    
    public String add(){
      return "success";//基于通配符
    }
    
    public String list(){
        System.out.println("UserAction list()");
        return "success";//最简单配置
     }

       /**getter和setter方法省略*/
    }

方案2:

struts.xml

<!-- 以下方式可以仅仅写一个Action,之后通过在调用的时候确定方法
        例如: http://localhost:8080/Java8_struts2/user?method:add配置有问题
            http://localhost:8080/Java8_struts2/user!add不支持
            这种方法虽然减少了Action的配置,但是依然增加了大量的result-->

<action name="user"
                class="org.zttc.struts01.action.UserAction">
            <result name="addInput">/WEB-INF/User/addInput.jsp</result>
            <result name="add">/WEB-INF/User/add.jsp</result>
            <result name="list">/WEB-INF/User/list.jsp</result>
        </action> 

方案3:

struts.xml

<!-- 下面这种还不足以应对所有的类,即通用性不高
        访问方法:http://localhost:8080/Java8_struts2/user_add.action
        http://localhost:8080/Java8_struts2/user_add-->
       <action name="user_*"
                class="org.zttc.struts01.action.UserAction"
                method="{1}">
            <result name="addInput">/WEB-INF/User/addInput.jsp</result>
            <result name="add">/WEB-INF/User/add.jsp</result>
            <result name="list">/WEB-INF/User/list.jsp</result>
        </action> 

方案4:struts.xml

<!-- 基于通配符,提高通用性,第一个*为第一个参数(类的名称),第二个*为方法
       访问方法:http://localhost:8080/Java8_struts2/User_add.action
         http://localhost:8080/Java8_struts2/User_add -->
          <action name="*_*"
                class="org.zttc.struts01.action.{1}Action"
                method="{2}">
                      <result>/WEB-INF/{1}/{2}.jsp</result>
        </action>

方案5:有时候控制器想要临时跳转到一个随便的地址

java:

public String login(){
        if(username.equals("admin")){
            ActionContext.getContext().getSession().put("isAdmin",true);
        }
        ActionContext.getContext().getSession().put("loginUser",username);
        System.out.println("LoginAction login() username="+username);
        //基于Action转发
        ActionContext.getContext().getSession().put("url","/user_Article_add.action");
        return "redirect";
    }

struts.xml:

<!-- 基于通配符,提高通用性,第一个*为第一个参数(类的名称),第二个*为方法
       访问方法:http://localhost:8080/Java8_struts2/User_add.action
         http://localhost:8080/Java8_struts2/User_add -->
          <action name="*_*"
                class="org.zttc.struts01.action.{1}Action"
                method="{2}">

             <result name="redirect">${ur}</result>

        </action>


你可能感兴趣的:(strus2 Action配置)