используя display:table в столбце display:table?

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

person mechanicum    schedule 06.01.2012    source источник


Ответы (1)


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

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

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

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

person JB Nizet    schedule 06.01.2012