struts2.xml - 不能包含其他 .xml 文件
我正在使用 struts2,因为我的 struts.xml 文件包含如下代码:
<?xml version="1.0" encoding="UTF-8" ?>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />
<include file="strutsAuthentication.xml"/>
<package name="default" extends="struts-default">
<interceptors>
<interceptor-stack name="crudStack">
<interceptor-ref name="checkbox" />
<interceptor-ref name="params" />
<interceptor-ref name="static-params" />
<interceptor-ref name="defaultStack" />
</interceptor-stack>
</interceptors>
</package>
我已经在 strutsAuthentication.xml 中指定了所有必需的操作。 该代码是:
<struts>
<package name="authentication" extends="default" namespace="/authentication">
<action name="saveCountry" class="saveCountryAction">
<interceptor-ref name="defaultStack" />
<result name="success">/savecountry.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
当我将应用程序部署到 tomcat 中时,它向我发出警告:
警告 (org.apache.struts2.components.Form:308) - 未找到指定操作的配置:命名空间中的“saveCountry”:“”。 表单操作默认为“action”属性的文字值。
这意味着struts.xml不能包含strutsAuthentication.xml。 有人有解决办法吗?? 提前谢谢....
I am using struts2, for that my struts.xml file contains code like :
<?xml version="1.0" encoding="UTF-8" ?>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />
<include file="strutsAuthentication.xml"/>
<package name="default" extends="struts-default">
<interceptors>
<interceptor-stack name="crudStack">
<interceptor-ref name="checkbox" />
<interceptor-ref name="params" />
<interceptor-ref name="static-params" />
<interceptor-ref name="defaultStack" />
</interceptor-stack>
</interceptors>
</package>
And i have specified all the required actions inside the strutsAuthentication.xml. That code is :
<struts>
<package name="authentication" extends="default" namespace="/authentication">
<action name="saveCountry" class="saveCountryAction">
<interceptor-ref name="defaultStack" />
<result name="success">/savecountry.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
When i am deploying my application into tomcat, it gives me warning that :
WARN (org.apache.struts2.components.Form:308) - No configuration found for the specified action: 'saveCountry' in namespace: ''. Form action defaulting to 'action' attribute's literal value.
It means struts.xml can't include strutsAuthentication.xml. Anyone have a solution ?? Thanx in advance....
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
得到了解决方案......对于上述问题,我在从 jsp 页面调用操作时犯了一个错误。 因此,在调用操作类时应包含命名空间名称“authentication”。 最终解决方案是:“authentication/saveCountry.action”。
Got d solution.... For above problem i was done a mistake in calling the action from jsp page. So namespace name "authentication" should be included at the time of calling the action class. Final solution is : "authentication/saveCountry.action".
我不知道您使用的是哪个版本的 struts2,但如果您使用的是 2.1.x 分支,您应该查看约定插件 http://cwiki.apache.org/S2PLUGINS/convention-plugin.html。 您可以摆脱 99% 的 XML 配置。
I don't know what version of struts2 you're using but if you're using the 2.1.x branch you should look at the convention plugin http://cwiki.apache.org/S2PLUGINS/convention-plugin.html. You can get rid of 99% XML configuration.
作为补充说明。 我们永远不应该在 JSP 页面中使用“xyz.action”。 如果我们稍后需要或决定将 url 模式从 .action 更改为 .do 或 .html 等。我们必须更改所有 JSP 页面。 撰写链接的更好方法是:
As an add note. We should never use "xyz.action" in JSP pages. If we later need or decide to change the url-pattern from .action to .do or .html etc. We have to change all JSP pages. A better approach to compose links is: