我對Java很新,剛剛遇到一個奇怪的問題。以前,一切工作正常,我不知道我做了什麼來搞砸(我知道,每個人都這麼說)。發生了什麼事是我對使用Apache Struts的(1.x中)和瓷磚的Web應用程序的工作,當我去到一個頁面的網頁瀏覽器,它似乎是用比以往不同的平鋪定義。如何確定JSP頁面使用哪個Tile定義?
下面是從瓷磚-config.xml中的相關線路:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration//EN"
"http://supplies.ur.com/dtds/tiles-config_1_1.dtd">
<tiles-definitions>
<definition name=".default" path="/template_new.jsp">
<put name="title" value="[Company Web App Name]" direct="true"/>
<put name="customerInfo" value="/customerInfo.jsp" direct="false"/>
<put name="smallBody" value="" direct="true"/>
<put name="menu" value="" direct="true"/>
<put name="quickMenu" value="/quickMenu.jsp" direct="false"/>
<put name="adminMenu" value="/adminMenu.jsp" direct="false"/>
<put name="message" value="/message.jsp" direct="false"/>
<put name="body" value="" direct="true"/>
<put name="helpAvailable" value="yes" direct="false"/>
<put name="feedbackAvailable" value="yes" direct="false"/>
<put name="problemReportingAvailable" value="yes" direct="false"/>
<put name="newFeaturesAvailable" value="yes" direct="false"/>
</definition>
<definition name=".empty" path="/blank.jsp">
<put name="title" value="[Company Web App Name]" direct="true"/>
<put name="customerInfo" value="/customerInfo.jsp" direct="false"/>
<put name="quickMenu" value="/quickMenu.jsp" direct="false"/>
<put name="message" value="/message.jsp" direct="false"/>
<put name="body" value="" direct="true"/>
<put name="footer" value="/footer2.jsp" direct="false"/>
<put name="helpAvailable" value="yes" direct="false"/>
<put name="feedbackAvailable" value="yes" direct="false"/>
<put name="problemReportingAvailable" value="yes" direct="false"/>
<put name="newFeaturesAvailable" value="yes" direct="false"/>
</definition>
<!-- Forgot to include the .rentalHistoryByType definition... -->
<definition name=".rentalHistoryByType" extends=".default">
<put name="title" value="Equipment Rental History By Type" direct="true"/>
<put name="smallBody" value="/rentalHistoryByType_Search.jsp" direct="false"/>
<put name="body" value="/rentalHistoryByType.jsp" direct="false"/>
</definition>
<!-- Added for CoolBeans -->
<definition name=".customerChoose" extends=".default">
<put name="title" value="Choose a customer" direct="true"/>
<put name="quickMenu" value="" direct="true"/>
<put name="smallBody" value="/customerChoose_Search.jsp" direct="false"/>
<put name="body" value="/customerChoose.jsp" direct="false"/>
</definition>
</tiles-definitions>
下面是struts-config.xml中的相關線路:
<action path="/rentalHistoryByType" type="com.[company name deleted].etrieveit.actions.RentalHistoryByTypeAction">
<forward name="customerNotSelected" path="/customerChoose.do" />
<forward name="success" path=".rentalHistoryByType" />
</action>
<!-- Added for CoolBeans -->
<action path="/customerChoose" type="com.[company name deleted].etrieveit.actions.CustomerChooseAction">
<forward name="success" path=".customerChoose" />
</action>
我要在瀏覽器中的網頁是「[path] /rentalHistoryByType.do」,其主體由rentalHistoryByType_Search.jsp和rentalHistoryByType.jsp構建。我發現問題的方式是,jQuery在以前工作正常的時候突然停止了在頁面上的工作。在查看源代碼時,我發現rentalHistoryByType.do是從blank.jsp構建的,而不是template_new.jsp。 (template_new.jsp的腳本包含jQuery,而blank.jsp沒有,並且頁面源中的其他細節也完全匹配blank.jsp。)
我的問題是,我該如何判斷哪個Tile定義頁面將在請求時使用,我該如何更改它?和/或什麼可能導致頁面使用不同於以前明顯使用的Tile定義?
很抱歉,如果我的術語是錯誤或混亂,我夠到Java新的,我真的不知道我在做什麼還...
你可以粘貼的struts-config的部分。具有rentalHistoryByType操作定義的xml嗎? – CoolBeans 2011-01-12 18:16:59
您還可以將customerChoose.do操作粘貼到struts-config.xml中嗎?到目前爲止粘貼的內容應該會導致template_new.jsp不爲空。 – CoolBeans 2011-01-12 19:07:39
我在上面的struts-config和tiles-config中添加了customerChoose部分。 – Sam 2011-01-12 19:32:07