小弟最近在学习struts2的知识,在学习 DMI动态方法调用时 遇到一个奇怪的问题
struts.xml中配置如下
<package name="admin" namespace="/admin" extends="default"> <global-results> <result>/admin/result.jsp</result> </global-results> <!-- 使用DMI动态方法调用 --> <action name="admin" class="net.nw.action.AdminAction"> </action> </package>
jsp页面代码如下
Java code?1234 <li><a href="<%=path%>/admin/admin!add.do?fun=添加">添加</a></li> <li><a href="<%=path%>/admin/admin!delete.do?fun=删除">删除</a></li> <li><a href="<%=path%>/admin/admin!modify.do?fun=修改">修改</a></li>
运行点击“添加”等连接时,会报错,如下
Struts Problem Report
Struts has detected an unhandled exception:
Messages: •There is no Action mapped for namespace [/admin] and action name [admin!add] associated with context path [/Struts2_Test].
另外AdminAction.java代码如下
package net.nw.action; import com.opensymphony.xwork2.ActionSupport; public class AdminAction extends ActionSupport{ /** * */ private static final long serialVersionUID = 1L; public String add() { System.out.println("管理员添加 ..."); return SUCCESS; } public String delete() { System.out.println("管理员删除 ..."); return SUCCESS; } public String modify() { System.out.println("管理员修改 ..."); return SUCCESS; } }
-----------------------------------------------------------
PS
我用以下这种方式调用时可以的, 不知道哦是什么原因,就是想学习下两种方式的用法
<li><a href="<%=path%>/admin/add.do?fun=添加">添加</a></li>
<li><a href="<%=path%>/admin/del.do?fun=删除">删除</a></li>
<li><a href="<%=path%>/admin/mod.do?fun=修改">修改</a></li>
[struts.xml ]
<action name="add" class="net.nw.action.AdminAction" method="add">
</action>
<action name="del" class="net.nw.action.AdminAction" method="delete">
</action>
<action name="mod" class="net.nw.action.AdminAction" method="modify">
</action>
在配置中加上如下代码,默认是关闭的
<constant name="struts.enable.DynamicMethodInvocation" value="true"/>