Struts2之DMI
来源:互联网 发布:mp6播放软件 编辑:程序博客网 时间:2024/04/29 04:41
DMI:DynamicMethodInvocation,即动态方法调用。
一般action在执行的时候运行的是execute()方法。如果想运行action中的其它方法,有两种方法:
1、method="...",即通过method来指定执行哪个方法
struts.xml中配置:
<struts>
<package name="reg" extends="struts-default">
<action name="reg" class="com.pm.action.RegAction" method="test">
<result name="success">/success.jsp</result>
<result name="fail">/fail.jsp</result>
</action>
</package>
</struts>
Reg.Action类中:
@Override
public String test() throws Exception {
if(...){
//...
return "success";
}else{
return "fail";
}
}
reg.jsp页面:
<form action="reg.action" method="post"></form>
2、DMI方式,即actionName!methodName,动态指定所执行的方法
struts.xml中配置:
<constant name="struts.enable.DynamicMethodInvocation" value="true"/> //这行不要忘记
<struts>
<package name="reg" extends="struts-default">
<action name="reg" class="com.pm.action.RegAction">
<result name="success">/success.jsp</result>
<result name="fail">/fail.jsp</result>
</action>
</package>
</struts>
Reg.Action类中:
@Override
public String test() throws Exception {
if(...){
//...
return "success";
}else{
return "fail";
}
}
reg.jsp页面:
<form action="reg!test" method="post"></form>
或<% String path = request.getContextPath(); %>
<a href="<%=path %>/reg!add">...</a>
注:不要忘记<constant name="struts.enable.DynamicMethodInvocation" value="true"/>,其作用是打开动态方法调用,因为struts2现在的版本默认关闭动态方法调用。
总结:在实际开发中,一般采用第二种方式,因为它减少action的数量。
动态方法调用官方推荐的做法是,使用通配符的形式。不要使用actionName!methodName的方式???
- Struts2之DMI
- 道听途说Struts2之5:Method and DMI
- Struts2慢慢学之三------DMI
- 【SSH学习之Struts2.5.10】 DMI设置
- struts2之动态方法调用(DMI)
- Struts2中的DMI
- struts2 使用dmi
- Struts2中的DMI
- struts2 DMI 不起作用的原因
- Struts2-动态方法调用(DMI)
- struts2动态方法调用(DMI)
- Struts2 DMI 动态方法调用
- Struts2 DMI动态方法调用
- Struts2基础之四:动态方法调用(DMI)和action通配符
- DMI
- dmi
- struts2——动态方法调用(dmi)!!!
- Struts2 ActionMethod 【DMI】(动态方法调用)
- 程序猿如何训练敏捷的大脑
- hdu 2489(枚举 + 最小生成树)
- cocos3.1内存管理的一点理解
- Java异常处理中的陋习
- 题目1009:二叉搜索树
- Struts2之DMI
- XcodeDeviceMonitor
- mybatis - 的使用 (使用配置文件)
- LINK : fatal error LNK1209--复制工程后容易出的错误
- 数据结构之队列10单链队列定义及实现
- error: asm/arch/regs-gpio.h: No such file or directory 此类问题的解决办法
- hive中的增删改如何实现
- Ubuntu 12.04中下载android源代码
- 大整数相加