加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Struts2动态调用DMI及错误解决措施

发布时间:2021-11-19 14:42:07 所属栏目:教程 来源:互联网
导读:在Strust2中action可以定义自己的方法,调用方法有两种方式,一种方式是struts.xml中指定method来表示需要用到的方法,但是这种方法缺点在于如果你的Action中有很多方法则要多次配置,这样很繁琐,另一种方法是使用动态方法调用DMI。 举一个简单的例子 比如Lo
在Strust2中action可以定义自己的方法,调用方法有两种方式,一种方式是struts.xml中指定method来表示需要用到的方法,但是这种方法缺点在于如果你的Action中有很多方法则要多次配置,这样很繁琐,另一种方法是使用动态方法调用DMI。
 
举一个简单的例子——
 
比如LoginAction中有add,dell方法,则
 
1、配置struts.xml文件
 
1 <package name="default"  extends="struts-default">
2      <action name="login"  class="com.action.loginAction">
3            <result name="add">/add.jsp</result>
4            <result name="dell">/dell.jsp</result>
5      </action>
6 </package>
 
2、在 loginAction中 编写add方法和dell方法:
 
public  String  add()
{
  return "add";
}
public  String dell()
{
  return "dell";
}
 
3、链接中使用!动态调用所需方法:
 
<a  href="login!add">调用add方法</a>
<a  href="login!dell">调用dell方法</a>
 
 
常见错误:
 
 There is no Action mapped for namespace [/XXX] and action name [xxx!xxx] associated with context path [/xxx_method].
 
解决方法:
 
 默认的Struts.xml中是这样的
 
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
 
 这样我们在地址栏输入感叹号动态调用方法的时候会出错,我们只需更改这一句即可
 
  <!-- 打开Struts的DMI -->
 
 <constant name="struts.enable.DynamicMethodInvocation" value="true" /> 

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读