3つの属性を取ることができるフィールドがあるとしましょう
<myTag a="something" b="something" c="something" />
変数が空白でない場合にのみ、これらの a、b、c 属性を含めたいとしましょう。だからELだとこうなる
<myTag a="${varA}" b="${varB}" c="${varC}" />
1 つ以上の変数が空白の場合 (たとえば varB が空の場合)、次のような出力が得られます。
<myTag a="a val" b c="c val" />
したがって、b はまだ存在しますが、空白の値を渡します。これにより、属性が空白の場合、一部のスプリング<form:etc>
タグで問題が発生する可能性があります (たとえば、form:options の itemLabel など)。属性が完全に表示されないようにする簡単な方法はありますか?
私は私ができることを理解しています
<c:if test="${empty b}">
<myTag a="${varA}" c="${varC}" />
</c:if>
しかし、それは、それぞれが空白になる可能性がある場合、属性の数が増えるにつれて、巨大な決定木が必要になることを意味します。
これを行うためのより良い方法を知っている人はいますか?