Предполагая, что я хочу добавить параметр в тэг url в Struts 2 на основе условия, выраженного с помощью тега if.Условно добавьте параметр в URL-тег в Struts 2
Что не работает, потому что параметр добавляется в контейнер, который в этом случае является тегом if.
<s:url id="url" value="path/to/something">
<s:if test="%{#expression}">
<s:param name="param" value="value" />
</s:if>
</s:url>
Есть ли альтернатива приведенному ниже коду, который работает достаточно хорошо, даже если параметр не установлен?
<s:if test="%{#expression}">
<s:set name="param" value="value"/>
</s:if>
<s:else>
<s:set name="param" value=""/>
</s:else>
<s:url id="url" value="path/to/something">
<s:param name="param" value="%{#param}" />
</s:url>
Отрывок будет включен несколько раз. Вот почему param
установлен явно пустым (который преобразован в null), если выражение принимает значение false.
Хороший вопрос. Вы можете использовать тернарный оператор внутри атрибута 'value'. BTW 'id'' 'вместо устаревших использует' var'. –