zoukankan      html  css  js  c++  java
  • Struts2动态方法调用

      动态方法就是一个Action对应多个请求,减少Action的数量

    1、指定method属性

    <action name="addAction" method="add" class="com.venn.action.HelloWorldAction">
    <result>/jsp/add.jsp</result>
    </action>

    2、感叹号(!)方式(不推荐使用)

    <action name="HelloWorld" class="com.venn.action.HelloWorldAction">
          <result>/jsp/test.jsp</result>
      <result name="add">/jsp/add.jsp</result>
      <result name="update">/jsp/update.jsp</result>
    </action>

      需要在struts.xml中加入如下常量:

        <constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>(加在package标签外面)

        调用不同方法使用:

         访问execute方法: http://localhost:8080/TestStruts2/HelloWorld.action

         访问update方法: http://localhost:8080/TestStruts2/HelloWorld!update.action

         访问add方法 http://localhost:8080/TestStruts2/HelloWorld!add.action

    3、通配符方式

      Action配置:

    <action name="HelloWorld_*" method="{1}" class="com.venn.action.HelloWorldAction">
    <result>/jsp/test.jsp</result>
    <result name="add">/jsp/add.jsp</result>
    <result name="update">/jsp/update.jsp</result>
    </action>

        访问execute方法: http://localhost:8080/TestStruts2/HelloWorld.action 或  http://localhost:8080/TestStruts2/HelloWorld_execute.action

        访问update方法: http://localhost:8080/TestStruts2/HelloWorld_update.action

        访问add方法 http://localhost:8080/TestStruts2/HelloWorld_add.action

    注:为简化struts.xml配置,可以将action配置为:

    <action name="*_*_*" method="{2}" class="com.venn.{3}.{1}Action">
    <result>/jsp/test.jsp</result>
    <result name="add">/jsp/{2}.jsp</result>
    <result name="update">/jsp/{2}.jsp</result>
    </action>

    第一个*对应action,第二个*对应method

    注意result标签的name属性不可以使用通配符

    java类

    public class HelloWorldAction extends ActionSupport {

    @Override
    public String execute() throws Exception {
    System.out.println("execute method");
    return "success";
    }

    public String add(){
    System.err.println("add method");
    return "add";
    }

    public String update(){
    System.out.println("update method");
    return "update";
    }
    }

  • 相关阅读:
    【BZOJ 2124】【CodeVS 1283】等差子序列
    【BZOJ 1036】【ZJOI 2008】树的统计Count
    【BZOJ 1901】【ZJU 2112】Dynamic Rankings
    【BZOJ 3924】【ZJOI 2015】幻想乡战略游戏
    【BZOJ 4103】【THUSC 2015】异或运算
    【BZOJ 4513】【SDOI 2016】储能表
    【HDU 3622】Bomb Game
    【BZOJ 3166】【HEOI 2013】Alo
    【BZOJ 3530】【SDOI 2014】数数
    【BZOJ 4567】【SCOI 2016】背单词
  • 原文地址:https://www.cnblogs.com/Springmoon-venn/p/5578965.html
Copyright © 2011-2022 走看看