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";
    }
    }

  • 相关阅读:
    hibernate联合主键 注解方式
    使用Json出现java.lang.NoClassDefFoundError解决方法
    Spring 定时任务2
    Spring 定时任务1
    Javasocket1
    volatile
    Java中byte与16进制字符串的互相转换
    Spring 源码学习
    web服务器工作原理
    SpringMVC国际化
  • 原文地址:https://www.cnblogs.com/Springmoon-venn/p/5578965.html
Copyright © 2011-2022 走看看