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" />
本文介绍了Struts2中动态方法调用(DMI)的概念,对比了两种实现方式:通过action的method属性指定方法和配置struts.xml启用DMI。第一种方法可能导致过多的action,因此不建议使用。第二种方法需要在struts.xml中设置`<constant name="struts.enable.DynamicMethodInvocation" value="true" />`来开启。
&spm=1001.2101.3001.5002&articleId=61624914&d=1&t=3&u=a4f334c2079547e4aa02ce0318ecb477)
870

被折叠的 条评论
为什么被折叠?



