リストの最初と最後の項目に特別なクラスが割り当てられているLIのリストを生成するJSPファイルがあります。 (これは動作します)この場合の問題点は、唯一つの結果があるとき場合には、クラスが「最初の最後の」なるべき、ということであるJSTL c:set文の空白を避ける
<c:set var="liclass">
<c:if test="${rowStatus.first}">first</c:if>
<c:if test="${rowStatus.last}"> last</c:if>
</c:set>
<%-- not very pretty --%>
<li<c:if test="${not empty liclass}"> class="${liclass}"</c:if>>
、それはfirst [...] last
次のようになります。私は現在、そのために、次のビットを使用しますここで、[...]は空白文字の束を表しています。
<c:set>
は、使用されているインデントによって引き起こされる空白もかかりそうです。空白なしで入力するだけで問題を解決できます。
<c:set var="liclass"><c:if test="${rowStatus.first}">first</c:if><c:if test="${rowStatus.last}"> last</c:if></c:set>
しかし、私は可読性のあるものを好むでしょう。もう1つの方法は、過剰な空白を取り除く関数を通して結果を取り出すことです。
質問:このような空白を<c:set>
タグで設定しないようにする方法や手法はありますか?
非常に良い答え、ありがとう。私はEL式の条件付き演算子(三項演算子)を知らなかった。私はそのようなものを検索したが、どこにも見つからなかった。 JSP/JSTLのドキュメントはより良いかもしれません。無価値なクラスについては - 私は気にします; D。私はFirebugでコードを見ると、死んだ属性が私をうんざらさせる。 trimDirectiveWhitespaces属性は、私が気付かなかった別のものです。この場合も、他のプロジェクト/ケースの両方で、あまりにも多くの助けになるでしょう。どうもありがとう! – fwielstra