struts2 action 问题
小弟最近在学习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页面代码如下
<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"/>