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" /> (编辑:济南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |