最近正在学习Struts2,随手试写一个小程序的时候却发现总是报告
There is no Action mapped for namespace [/user] and action name [user!add],
上网查了一下,问题的解决方案几乎都是:
1、struts.xml的位置不对,应在src目录下
2、struts.xml的编写有误
但是从昨晚折腾到今早,博主确信struts.xml无误,甚至重写并重新部署了很多遍之后都无效。但发现将调用的方法直接写入method调用之后就不报错了
<action name="user" class="com.action.UserAction" method="add">
但是通过如下DMI动态调用就是不行
struts.xml
<action name="user" class="com.action.UserAction">
....
index.jsp
<form action="user/user!add" method="post">
所以我开始怀疑问题出在DMI的地方,一查果然是这样,struts2默认不开启DMI,需编程人员自行开启,在struts.xml中加入如下语句便可以:
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
转载请注明出处