Struts Tiles - Получить атрибуты - PullRequest
3 голосов
/ 28 декабря 2011

Для предисловия я не работаю с Java или Struts, но понимаю, что происходит в коде. Когда дело доходит до написания кода, я ничего не понимаю. Я работаю с KonaKart, и они используют плитки стоек для отображения макетов.

Вот фрагмент jsp:

<div class="siderBox noMargin">
    <div class="siderBoxTop"></div>
    <div class="siderBoxContent">
        <tiles:insert attribute="leftTile1" />
    </div>
    <div class="siderBoxBottom"></div>
 </div>

В зависимости от текущей страницы, leftTile1 может иметь значение Empty.jsp, которое является пустой страницей (например, это leftTile5 и leftTile6):

<put name="leftTile5" value="/WEB-INF/jsp/InformationTile.jsp"/>
<put name="leftTile6" value="/WEB-INF/jsp/Empty.jsp"/>

Если на плитке пустая страница, поле все равно появляется, и у меня остаются все эти пустые поля. Есть ли способ получить значение атрибута и не отображать плитку (т.е. if(leftTile1.attribute!="/WEB-INF/jsp/Empty.jsp"){ //show the content; })?

В худшем случае, я могу просто просмотреть все 30 файлов jsp и обернуть содержимое заголовком и нижним колонтитулом для плитки.

Скриншот текущего вывода и от чего я хочу избавиться: Blank tiles

Ответы [ 2 ]

7 голосов
/ 28 декабря 2011

Не проверено, но вы, вероятно, можете определить атрибут как пустую строку вместо /WEB-INF/jsp/Empty.jsp, если ничего не должно отображаться, и использовать следующий код в макете:

<tiles:useAttribute name="leftTile1" id="leftTile1"/>
<c:if test="${!empty leftTile1}">
    <div class="siderBoxContent">
        <tiles:insert attribute="leftTile1" />
    </div>
</c:if>
2 голосов
/ 28 декабря 2011

В конечном итоге это сработало:

<tiles:importAttribute name="leftTile1" scope="request" />
<logic:notEqual name="leftTile1" value="/WEB-INF/jsp/Empty.jsp">
    <div class="siderBox noMargin">
         <div class="siderBoxTop"></div>
         <div class="siderBoxContent">
              <tiles:insert attribute="leftTile1" />
         </div>
         <div class="siderBoxBottom"></div>
     </div>
</logic:notEqual>

Спасибо за вашу помощь, Джей Би, он указал мне правильное направление.

...