Зависит от того, используете ли вы Struts2.0.x или более позднюю версию, поскольку атрибут id
заменен заменен на var
атрибут в s:iterator
начиная с Struts2.1.x.
Принимая во внимание Struts 2.1.x, лучше всего назначить атрибут var
и использовать его в качестве переменной (как вы уже предлагали)
<s:iterator value="bar" var="foo">
<s:if test="#foo==null || #foo==''">0</s:if>
</s:iterator>
Вы также можете использовать переменную top
для получения значения верхнего стека, но оно может вступать в конфликт с атрибутами ваших объектов. Все еще работает
<s:iterator value="bar">
<s:if test="top==null || top==''">0</s:if>
</s:iterator>
Но, если вам нужно только напечатать результат String без каких-либо условий, будь то null
или пусто , просто сделайте это так же просто, как этот
<s:iterator value="bar">
<s:property /> <!-- prints iterator current value or '' if its null -->
</s:iterator>
Ps. Нет необходимости использовать разметку ognl %{}
внутри атрибута test
s:if
или атрибута value
s:property
.
Для получения дополнительных примеров проверьте Итератор Struts2 Doc