1、准备工作:
(1)在一个action中写多个方法:
public class HelloAction { public String add(){ System.out.println("添加"); return "success"; } public String delete(){ System.out.println("删除"); return "success"; } public String update(){ System.out.println("修改"); return "success"; } public String selete(){ System.out.println("查询"); return "success"; } }
(2)为了配置文件的简洁明了,设置两个配置文件,主文件引入另一个配置文件:
<struts>
<include file="zhb/hello/struts.xml"></include>
</struts>
另外一个配置文件:
<struts> <package name="hello" namespace="/hello" extends="struts-default"> <action name="HelloAction_add" class="pers.zhb.hello.HelloAction" method="add"> <result name="success">/hello.jsp</result> </action> <action name="HelloAction_delete" class="pers.zhb.hello.HelloAction" method="delete"> <result name="success">/hello.jsp</result> </action> <action name="HelloAction_update" class="pers.zhb.hello.HelloAction" method="update"> <result name="success">/hello.jsp</result> </action> <action name="HelloAction_selete" class="pers.zhb.hello.HelloAction" method="selete"> <result name="success">/hello.jsp</result> </action> </package> </struts>
这样书写起来比较麻烦。
(3)测试结果:
2、动态方法调用(方式一):
(1)配置动态方法调用是否开启常量(默认是关闭的):
<struts> <constant name="struts.enable.DynamicMethodInvocation" value="true"></constant> <package name="hello" namespace="/hello" extends="struts-default"> <action name="HelloAction" class="pers.zhb.hello.HelloAction"> <result name="success">/hello.jsp</result> </action> </package> </struts>
(2)访问方式:
3、动态方法调用(方式二):
(1)配置文件:
<struts> <package name="hello" namespace="/hello" extends="struts-default"> <action name="HelloAction_*" class="pers.zhb.hello.HelloAction" method="{1}"> <result name="success">/hello.jsp</result> </action> </package> </struts>
method="{1}"中的“1”可以取出“*”中的内容。
(2)访问方式: