2012-01-06 5 views
0

아래 코드 (jsf 페이지)에서 호텔 정보가 표시됩니다 (테이블 행은 있지만 메인 테이블의 열 중 하나에서 테이블로 룸 세부 정보를 채우고 싶습니다). 코드가 실제로 더 의미가 있습니다. 제목이 "Rooms"인 열에서 방 세부 정보가있는 테이블을 표시하려고합니다. 전체 테이블은 "suitableHotelsList"라는 목록을 사용합니다. 목록 내에서 열 속성의 세부 정보를 제공하는 몇 가지 mainVO가 있습니다. 또한 roomVO가 포함 된 roomList가 MainVO 내에 있습니다. 따라서 나는 아래에 새로운 테이블을 할 수 있어야하지만 "알 수없는 속성 'roomList'"이라고 말하면서 오류가 발생합니다. 호텔과 객실을 연관 짓기 위해 어떤 제안을 할 수 있습니까?디스플레이 사용 : 디스플레이 내 테이블 : 테이블 열?

   <div class="Tbl" style="border-width: 2px; border-style: solid; margin: 2px; font-size: 20px; height: 442px; left: 22px; top: 46px; overflow: scroll; position: absolute; width: 1268px; z-index: 1"> 
         <display:table class="its" id="hotelList" name="requestScope.DetailSelection.suitableHotelsList" style="border-width: 2px; border-style: solid;"> 
          <display:setProperty name="basic.empty.showtable" value="false"/> 
          <display:setProperty 
           name="basic.msg.empty_list">Gösterilecek bir kayıt bulunamadı</display:setProperty>/&gt; 
          <display:column 
           property="hotelName" style="font-size: 30px; width:200px; text-align:center;" title="Hotel Name"/> 
          <display:column property="hotelStars" style="font-size: 30px; width:100px; text-align:center;" title="Stars"/> 
          <display:column property="userRating" style="font-size: 30px; width:100px; text-align:center;" title="User Rating"/> 
          <display:column property="hotelSummary" style="font-size: 20px; width:500px; text-align:center;" title="Summary"/> 
          <display:column style="width:100px;" title="Hotel Details"> 
           <a href="HotelDetailsPage.jsp?id=${hotelList.hotelID}&amp;screenType='O'&amp;initial='true'"> 
            <ui:image style="height:80px; width:80px;" url="/resources/img2.JPG"/> 
           </a> 
          </display:column> 
          <display:column style="width:100px;" title="Rooms"> 
           <display:table class="its" id="roomList" name="requestScope.DetailSelection.suitableHotelsList.roomList"> 
            <display:column property="room_type" style="font-size: 10px; width:100px; text-align:center;" title="Room Type"/> 
            <display:column property="price_per_night" style="font-size: 10px; width:100px; text-align:center;" title="Price Per Night"/> 
            <display:column property="room_number" style="font-size: 10px; width:100px; text-align:center;" title="Room Number"/> 
            <display:column style="width:100px;" title="Hotel Details"> 
           <a href="Reservations.jsp?id=${roomList.roomID}&amp;screenType='O'&amp;initial='true'"> 
            <ui:image style="height:80px; width:80px;" url="/resources/img3.JPG"/> 
           </a> 
           </display:column> 
           </display:table> 
          </display:column> 
         </display:table> 
        </div> 

답변

2

외부 테이블은 id="hotelList"입니다. 즉, 반복 중에 태그를 사용하면 페이지 범위 속성 "hotelList"를 사용하여 현재 호텔에 액세스 할 수 있습니다. 그래서 호텔 이름을 지어서 훨씬 더 명확하게 만들 것입니다.

현재 호텔 객실 목록에 액세스해야합니다. requestScope.DetailSelection.suitableHotelsList.roomList을 사용하면 의미가 없습니다. 호텔 목록 (유형 java.util.List)에 "roomList"라는 속성이 없습니다. 대신, 현재 호텔의 객실 목록에 액세스하려는 경우 : hotel.roomList (위에 제안 된대로 hotelList의 이름이 호텔로 변경된 경우).

또한 중첩 테이블은 ID roomList을 사용합니다. 위와 동일 : "room"이라는 이름을 사용하면 혼동이 훨씬 줄어 듭니다. 반복의 현재 개체는 방 목록이 아니라 방입니다.

마지막으로 또 다른 문제점은 id 특성이 내부 HTML 테이블에 ID HTML 특성을 설정하는 데 사용된다는 것입니다. ID는 전체 HTML 페이지에 대해 고유해야하며 내부 테이블이 여러 개 있어야하므로 잘못된 HTML이 표시됩니다. 따라서 htmlId 속성을 room${hotel_rowNum}과 같이 고유 한 값으로 설정해야합니다. 태그 참조는 http://www.displaytag.org/1.2/displaytag/tagreference.html을 참조하십시오.

+0

매우 잘 작동 했으니, 고맙습니다. – mechanicum

관련 문제