ifタグで表される条件に基づいて、Struts 2のurlタグにパラメータを追加すると仮定します。条件付きでStruts 2のURLタグにパラメータを追加する
この場合、ifタグであるコンテナにparamが追加されているため、以下は動作しません。
<s:url id="url" value="path/to/something">
<s:if test="%{#expression}">
<s:param name="param" value="value" />
</s:if>
</s:url>
paramが設定されていない場合でも非常にうまくいく以下のコードの代わりがありますか?
<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>
スニペットは複数回含まれます。したがって、式がfalseと評価された場合、param
は空に(nullに変換される)明示的に設定されます。
良い質問の周り 'のBTW' id'は非推奨です。代わりに 'var'を使用してください。 –
url
タグをラップすることができ、if
タグをパラメータべきではありません。 'value'属性の中に三項演算子を使うことができます。 '