Action执行的时候并不一定要执行execute方法
可以在配置文件中配置Action的时候用method=来指定执行哪个方法 也可以在url地址中动态指定(动态方法调用DMI)(推荐)
可以在配置文件中配置Action的时候用method=来指定执行哪个方法 也可以在url地址中动态指定(动态方法调用DMI)(推荐)
前者会产生太多的action,所以不推荐使用
两种方法:
(1):
在action里面添加method属性,action执行的类里面写跟method属性一致的方法
<action name="hell" class="user.action.UserAction" method="add">
<result name="succ">
/index.jsp
</result>
</action>
result标签的name属性和add方法的返回值继续一致package user.action;
import com.opensymphony.xwork2.ActionSupport;
public class UserAction extends ActionSupport {
public String add()
{
return "succ";
}
}
执行:
(2):
</action>
<action name="hell2" class="user.action.UserAction">
<result name="succ">/user_add_success.jsp</result>
</action>
浏览器运行是输入:
注意:在struts.xml里面添上这段代码:开启动态方法调用
<constant name="struts.enable.DynamicMethodInvocation" value="true" />