动态方法调用的三个方式:(动态方法调用就是为了解决一个Action对应对个请求的处理,以免Action太多)
1)指定method属性;
<action name="add" method="add" class="com.imooc.action.HelloWorldAction">
<result>/add.jsp</result>
</action>
2)感叹号方式(不推荐);
先在package外面添加:
<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
<action name="helloworld" class="com.imooc.action.HelloWorldAction">
<result>/reuslt.jsp</result>
<result name="add">/add.jsp</result>
</action>
访问add方法则地址最后目标改为:helloworld!add.action
3)通配符方式。(推荐方式)
第一个代替{1},第二个代替{2},result里的name是Action的返回值,action的里method是Action里的方法名,调用某个方法时最后目标就输入 {1}_{2}.action;这样可以访问多个Action里的方法
<action name="*_*" method="{2}" class="com.imooc.action.{1}Action">
<result>/result.jsp</result>
<result name="add">/{2}.jsp</result>
<result name="update">/{2}.jsp</result>
</action>