Struts2配置文件include的有关问题
阅读
当我把Struts2的配置文件拆分成多个struts配置文件,include最多能包含1级??下一级的内容将不可见?
现有struts.xml,struts-a.xml,struts-b.xml三个配置文件。
其中struts.xml为系统的主配置文件,为struts2框架自动调用。
- XML code
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <include file="../config/common/struts-a.xml" /> .... </struts>
struts-a.xml
- XML code
<struts> <include file="struts-b.xml" /> .... </struts>
struts-b.xml
- XML code
<struts> <package name="struts-abc" namespace="/public/common/test"> <action name="abc" class="abc"> <result name="success" type="dispatcher">/web/abc.jsp</result> </action> </package> </struts>
那我在URL里调http://localhost:8080/dev/public/common/test/abc.action则发生异常,报
- Java code
ERROR(Dispatcher.java:512)Dispatcher:512 - Could not find action or result There is no Action mapped for namespace /public/common/test and action name abc. - [unknown location]
如果把struts-b.xml中的
- XML code
<package name="struts-abc" namespace="/public/common/test"> <action name="abc" class="abc"> <result name="success" type="dispatcher">/web/abc.jsp</result> </action> </package>
这段代码放到struts-a.xml中则正常。
请问这是什么原因引起的?还是struts2本身不支持?
------解决方案--------------------
我觉得是路径问题,你得struts-a.xml被include到struts.xml后,再去include下一级的struts-b.xml时是从struts.xml文件的当前路径开始的寻找struts-b.xml,而你的struts-a.xml中的file指定的路径肯定就有问题了。
阅读