2012-01-06 109 views
0

在下面的代码(jsf页面)中,我显示了一些酒店信息:表格行,但是我想在主表格的其中一列中填充房间细节。代码实际上更有意义。在标题为“房间”的栏目中,我想显示一张带有房间详细信息的表格。整个表格使用一个名为“suitableHotelsList”的列表。在列表中,有几个mainVO列出了列属性中的详细信息。房间列表(其中包含roomVO)也位于MainVO内。因此,我推测我应该能够做一个新的表,如下所示,但给错误说:“未知财产'房间列表'” 任何建议,我可以做些什么,使酒店与他们的房间?使用显示器:显示器中的表格:表格列?

   <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。与上面相同:将其命名为“空间”将不那么令人困惑。迭代中的当前对象是房间,而不是房间列表。

最后,另一个问题是id属性也用于将HTML HTML属性设置为内部HTML表格。由于整个HTML页面的ID应该是唯一的,并且您将有多个内部表格,这将导致无效的HTML。 因此,您应该将htmlId属性设置为独特的内容,如room${hotel_rowNum}。标签参考请参见http://www.displaytag.org/1.2/displaytag/tagreference.html

+0

工作得很好,谢谢 – mechanicum 2012-01-06 11:46:50