Как определить, какое определение листов использует страница JSP? - PullRequest
1 голос
/ 12 января 2011

Я довольно новичок в Java и только что столкнулся со странной проблемой.Раньше все работало нормально, и я не знаю, что я сделал, чтобы облажаться (я знаю, все так говорят).Происходит то, что я работаю над веб-приложением, которое использует Apache Struts (1.x) и Tiles, и когда я перехожу на страницу в веб-браузере, оно, похоже, использует другое определение 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, отличное от того, которое использовалось ранее?

Извините, если моя терминология неверна или сбивает с толку, я достаточно новичок в Java, что на самом деле незнаю, что я делаю еще ...

Ответы [ 2 ]

1 голос
/ 12 января 2011

Должен быть файл конфигурации Struts (обычно называемый struts-config.xml), в котором отображаются действия с определениями, например будет содержать

<action path="/home"
  type="com.myco.MyHomeAction">
  <forward name="home/landing"
    path="home.definition"/>
</action>
0 голосов
/ 13 января 2011

нашел ответ;это было очевидно проблема кеширования.Я остановил JBoss, удалил содержимое папок \ server \ default \ tmp и \ server \ default \ work JBoss и перезапустил JBoss, и теперь он работает правильно ...

...