动态方法调用作用
动态方法调用就是为了解决一个Action对应多个请求的处理,以免Action太多。
实现动态调用的三个方式
- 指定method属性
- 感叹号方式(不推荐,这里不做说明)
- 通配符方式
实现
action
package com.test.action;
import com.opensymphony.xwork2.ActionSupport;
@SuppressWarnings("serial")
public class HelloWorldAction extends ActionSupport {
public String add() {
return "add";
}
public String update() {
return "update";
}
@Override
public String execute() throws Exception {
return "helloWorld";
}
}
struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<package name="default" namespace="/" extends="struts-default" strict-method-invocation="false">
<action name="helloWorld" class="com.test.action.HelloWorldAction">
<result name="helloWorld">helloworld.jsp</result>
</action>
<!-- 指定方法 -->
<action name="addAction" method="add" class="com.test.action.HelloWorldAction">
<result name="add">add.jsp</result>
</action>
<action name="updateAction" method="update" class="com.test.action.HelloWorldAction">
<result name="update">update.jsp</result>
</action>
<!-- 通配符指定方法 -->
<action name="helloWorld_*" method="{1}" class="com.test.action.HelloWorldAction">
<result name="helloWorld">/helloworld.jsp</result>
<result name="add">/add.jsp</result>
<result name="update">/update.jsp</result>
</action>
</package>
<constant name="struts.enable.DynamicMethodInvocation" value="false"></constant>
</struts>
一、指定method属性
输入URL:http://localhost:8080/StrutsHelloWorld/addAction.action
二、通配符指定方法
输入URL:http://localhost:8080/StrutsHelloWorld/helloWorld_update.action