日期:2014-05-19  浏览次数:20719 次

Struts2的<s:url action="XXX" namespace="/XXX"/>的Bug问题
配置文件:struts.xml
XML code
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
 "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
    <constant name="struts.custom.i18n.resources" value="q2c"/>
    <constant name="struts.i18n.encoding" value="UTF-8" />
    <constant name="struts.objectFactory" value="spring" />
    <constant name="struts.devMode" value="true" />
    <constant name="struts.server.static.browserCache" value="false"/>
    <constant name="struts.configuration.xml.reload" value="true" />
    <constant name="struts.ui.theme" value="simple" />
    省略…
    <include file="com/qtoc/config/item/item.xml"></include>
</struts>

item.xml文件
XML code
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
 "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
省略…
<package name="item" namespace="/item" extends="qtoc">
<action name="spStyleManageUI*" class="com.qtoc.item.action.style.SpStyleManageAction"
            method="{1}">
            <result>/WEB-INF/base/item/{1}_style.jsp</result>
</action>
</package>
</struts>

在页面上有XXX.Jsp:
<s:url action="spStyleManageUIaddUI" namespace="/item"/>
如果是把item.xml包含在Struts.xml中,当启动tomcat解析XXX.jsp时
<s:url action="spStyleManageUIaddUI" namespace="/item"/>
会被解析成:/item/spStyleManageUIaddUI;jsessionid=37289372937293872893273

如果把:
<action name="spStyleManageUI*" class="com.qtoc.item.action.style.SpStyleManageAction"
method="{1}">
<result>/WEB-INF/base/item/{1}_style.jsp</result>
</action>
直接写在Struts.xml里面,解析出来就是:
/item/spStyleManageUIaddUI
现在还不知道是什么原因,发现后就贴上来了,希望同网友分享,解决原因。


------解决方案--------------------
extends="qtoc" 这个qtoc贴一下
------解决方案--------------------
只能精神支持一下
------解决方案--------------------
<s:url id="finduser" namespace="/email" action="FindAllUser" ></s:url>
 <s:a href="%{finduser}"></s:a>
你这样引用试试,我没发现你所说的问题。