详解Struts2动态方法调用

作者:春江花夜月 时间:2022-10-18 11:19:25 

动态方法就是一个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

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

来源:http://www.cnblogs.com/Springmoon-venn/p/5578965.html

标签:struts2
0
投稿

猜你喜欢

  • idea设置JVM运行参数的几种方式

    2023-05-26 14:57:33
  • 如何用java程序(JSch)运行远程linux主机上的shell脚本

    2023-11-24 12:35:58
  • MyBatis逆向工程的创建和使用

    2022-07-18 20:07:55
  • Android悬浮按钮点击返回顶部FloatingActionButton

    2021-09-09 01:47:00
  • Java反射机制(Reflection)浅析

    2023-04-17 14:35:56
  • 详解在springboot中使用Mybatis Generator的两种方式

    2021-10-12 14:26:44
  • 2022 最新 IntelliJ IDEA 详细配置步骤演示(推荐)

    2021-11-20 21:05:48
  • SpringMvc+Angularjs 实现多文件批量上传

    2023-12-08 23:25:24
  • Trie树(字典树)的介绍及Java实现

    2022-06-14 15:38:24
  • C#基于Socket实现多人聊天功能

    2021-12-06 12:00:47
  • SpringBoot JdbcTemplate批量操作的示例代码

    2023-05-15 21:46:42
  • SpringBoot如何返回Json数据格式

    2023-01-12 16:28:51
  • Java 数据结构与算法系列精讲之哈希算法实现

    2022-01-10 23:56:07
  • SpringBoot整合Log4j2及配置步骤

    2023-10-27 10:50:16
  • java base64编码、解码的三种方式总结

    2022-12-29 22:20:51
  • 实现分布式WebSocket集群的方法

    2021-06-12 22:55:10
  • Spring中统一异常处理示例详解

    2022-08-01 07:09:24
  • Android的Launcher启动器中添加快捷方式及小部件实例

    2022-10-26 13:05:14
  • sigsetjmp的用法总结

    2023-06-05 07:12:07
  • java中使用zxing批量生成二维码立牌

    2021-12-31 04:31:03
  • asp之家 软件编程 m.aspxhome.com