внедрить атрибут стиля на основе параметра из действия в выбранном элементе на JSP

Я пытался найти решение в течение нескольких часов, но все еще не удалось :(

вот простой div на моем JSP:

<div class="message" >
    HELLO USER!
</div>

Я хочу, чтобы он имел такой стиль:

<div class="message" style="display : none;" >
    HELLO USER!
</div>

но этот стиль зависит от размера объекта списка, который исходит от действия Struts, поэтому этот JSP является результатом успеха действия. Я пытался что-то вроде только для тестового значения:

<s:set name="divStyle" value="display: none;" />
<div class="message" style="<s:property value="countyStyle" />" >
     HELLO USER!
</div>

и я пробовал:

<s:set name="divStyle" value="<s:if test="elementsFromAction.size > 1" >display: none;</s:if>" />
<div class="message" style="<s:property value="divStyle" />" >
     HELLO USER!
</div>

и:

<div class="message" style="<s:if test="elementsFromAction.size > 1" >display: none;</s:if>" />" >
     HELLO USER!
</div>

но тоже не получилось :(

Может ли кто-нибудь дать совет, как внедрить этот стиль? Спасибо.


person java_newbie    schedule 17.10.2014    source источник


Ответы (3)


Во фрагменте <s:set/> вы вкладываете теги Struts, это ошибка.

В вашем последнем фрагменте есть опечатка: вы закрываете неоткрытый тег с помощью />.

Измените его с

<div class="message" 
     style="<s:if test="elementsFromAction.size > 1">display: none;</s:if>" />" >
     HELLO USER!
</div>

to

<div class="message" 
     style="<s:if test="elementsFromAction.size > 1">display: none;</s:if>" >
     HELLO USER!
</div>
person Andrea Ligios    schedule 17.10.2014

Попробуй это

<div class="message" style="${elementsFromAction.size gt 1 ? 'display : none;' : ''}" >
    HELLO USER!
</div>
person Predrag Maric    schedule 17.10.2014
comment
спасибо, но это не помогло (возможно, причина в том, что я не включаю теги jstl в этот JSP, потому что я использую только специальные теги struts - person java_newbie; 17.10.2014
comment
Это стандартный язык выражений, а не jstl, странно, что он не сработал. Однако рад, что вы разрешили это. - person Predrag Maric; 17.10.2014

Дано другое решение.

загрузите свой стиль в компонент данных.

А в функции страницы onload вы можете их обработать и перевести на то, что вам нравится.

что может избежать некоторых проблем, когда логика слишком сложна.

person Georgmster    schedule 17.10.2014