2011-01-12 2 views
0

저는 Java에 익숙하지 않고 이상한 문제가 발생했습니다. 이전에는 모든 것이 잘 작동하고 있었고 나는 그것을 망치기 위해 무엇을했는지 알지 못합니다 (모든 사람들이 그렇게 말합니다). Apache Struts (1.x) 및 Tiles를 사용하는 웹 응용 프로그램에서 작업 중이며 웹 브라우저에서 페이지를 탐색 할 때 이전과 다른 Tile 정의를 사용하고있는 것으로 보입니다.JSP 페이지가 사용하는 타일 정의를 결정하는 방법은 무엇입니까?

<?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> 

여기 스트럿 - config.xml 파일에서 관련 라인이다 :

여기 타일-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> 

내가 브라우저에서 갈거야 페이지 "[경로] /rentalHistoryByType.do"이며, body는 rentHistoryByType_Search.jsp 및 rentalHistoryByType.jsp로 작성됩니다. 문제를 발견 한 방법은 이전에 jQuery가 갑작스럽게 작업을 중단했을 때 jQuery가 갑자기 작업을 중단했다는 것입니다. 소스를 보면, rentalHistoryByType.do가 template_new.jsp가 아닌 blank.jsp에서 빌드되고있는 것을 발견했습니다. template_new.jsp는 jQuery 용 스크립트를 포함하고 있지만 blank.jsp는 그렇지 않으며 페이지 소스의 다른 세부 정보도 blank.jsp와 정확히 일치합니다.) 페이지가 요청되면 가져오고 어떻게 변경할 수 있습니까? 그리고/또는 페이지가 이전에 분명히 사용했던 것과 다른 Tile 정의를 사용하게하는 원인은 무엇입니까? 내 용어가 틀리거나 혼동하는 경우

미안 해요 ...

+0

struts-config의 섹션을 붙여 넣을 수 있습니까? rentHistoryByType 동작이 정의 된 xml? – CoolBeans

+0

customerChoose.do 액션을 struts-config.xml에 붙여 넣을 수 있습니까? 지금까지 붙여 넣은 것이 template_new.jsp를 비워 두지 않아야합니다. – CoolBeans

+0

위의 struts-config 및 tiles-config 섹션에서 customerChoose 섹션을 추가했습니다. – Sam

답변

0

발견 된 답변; 분명히 캐싱 문제였습니다. JBoss를 중단하고 JBoss의 \ server \ default \ tmp 및 \ server \ default \ work 폴더의 내용을 삭제하고 JBoss를 재시작 했으므로 이제는 올바르게 작동합니다 ...

+0

좋은 대답. 답을 정답으로 받아 들일 수 있습니다. – CoolBeans

0

이 있어야 스트럿츠 설정 파일 (이름 스트럿을 정말 나는 아직 뭘하는지 모르는만큼 자바에 새로운 해요 -config.xml 일반적으로) 정의와 동작의 매핑을 가지고 있습니다. 그것은 포함 할 것이다

<action path="/home" 
    type="com.myco.MyHomeAction"> 
    <forward name="home/landing" 
    path="home.definition"/> 
</action> 
+0

여기에는 rentHistoryByType을 참조하는 struts-config.xml의 비트가 있습니다. "customerHooseByType"/> "customerHooseByType" (죄송합니다, 코드 서식이 주석에서 작동하지 않습니다.) 거기에 공백을 나타내는 내용이 보이지 않습니다 ...? – Sam

+0

경로 = ". rentHistoryByType"은 어디에 매핑됩니까? 타일에 표시되지 않습니다. 정의 xml – CoolBeans

+0

아, 죄송합니다. tiles-config.xml에서 : Sam

관련 문제