У меня есть форма с двумя половинками, одна для прикрепления широкого эскиза к активу, а другая для миниатюры стандартного размера.Файл jsp, генерирующий страницу, вызывает thumbnail.tag, который дважды вызывает thumb.tag:
<thumbnail:thumb label="75px Thumbnail" />
<thumbnail:thumb label="Wide Thumbnail" />
thumb.tag, в свою очередь, имеет следующее:
<s:if test="#attr.label == '75px Thumbnail'">
<thumbnail:standardThumb />
</s:if>
<s:elseif test="#attr.label == 'Wide Thumbnail'">
<thumbnail:wideThumb />
</s:elseif>
Единственное отличие standardThumb.tag и wideThumb.tag - это имена переменных, например, stdThumbUrl и wideThumbUrl.Я был назначен для рефакторинга этого в один файл и передачи в строку "std" или "wide".Я обнаружил, что это прекрасно работает с обычными тегами HTML.Например, добавлено в thumb.tag:
<thumbnail:standardThumb tst="standard" />
и в standardThumb.tag:
<%@ attribute name="tst" required="true"%>
...
<iframe id="${tst}ThumbImage" ... >
, и это работает как ожидалось.Я не могу найти способ получить "стандарт" в
<s:if test="content.standardThumbUrl != null">
в том же файле.Я пробовал каждую комбинацию% и $ и # и {}, о которой я могу думать, но ничего не помогло.Есть ли какой-то правильный синтаксис, который поможет мне достичь желаемого эффекта?