используя display: table в display: столбец таблицы? - PullRequest
0 голосов
/ 06 января 2012

В приведенном ниже коде (страница jsf) у меня отображается некоторая информация об отеле: строки таблицы, но я хочу втиснуть детали комнаты в виде таблицы в одном из столбцов основной таблицы. Код на самом деле имеет больше смысла. В столбце с заголовком «Комнаты» я хочу отобразить таблицу с деталями комнаты. Вся таблица использует список под названием «подходящий список отелей». В списке есть несколько mainVO, которые содержат детали в свойствах столбца. Также roomList (который содержит roomVO) находится в 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>

1 Ответ

2 голосов
/ 06 января 2012

Внешний стол имеет id="hotelList".Это означает, что во время итерации тег позволяет получить доступ к текущему списку отелей с помощью атрибута области страницы «hotelList».Я бы, таким образом, назвал бы это «отель», что сделало бы его более понятным.

Вам необходимо получить доступ к списку номеров текущего отеля.Для этого вы используете requestScope.DetailSelection.suitableHotelsList.roomList, что не имеет смысла: список отелей (типа java.util.List, я полагаю) не имеет никакого свойства с именем "roomList".Вместо этого вы хотите получить доступ к списку номеров текущего отеля: hotel.roomList (при условии, что вы переименовали hotelList в hotel, как указано выше).

Кроме того, во вложенной таблице используется идентификатор roomList.То же, что и выше: наименование «комната» было бы намного менее запутанным.Текущий объект в итерации - это комната, а не список комнат.

Наконец, еще одна проблема заключается в том, что атрибут id также используется для установки атрибута HTML-идентификатора для внутренней таблицы HTML.Поскольку идентификатор должен быть уникальным для всей HTML-страницы, и у вас будет несколько внутренних таблиц, это приведет к неверному HTML.Таким образом, вы должны также установить атрибут htmlId в нечто уникальное, например room${hotel_rowNum}.См. http://www.displaytag.org/1.2/displaytag/tagreference.html для ссылки на тег.

...