3

はじめに、私は Java や Struts を扱っていませんが、コードで何が起こっているかは理解しています。コードを書くことになると、私は無知です。私は KonaKart で作業していますが、Struts タイルを使用してレイアウトを表示しています。

jsp スニペットは次のとおりです。

<div class="siderBox noMargin">
    <div class="siderBoxTop"></div>
    <div class="siderBoxContent">
        <tiles:insert attribute="leftTile1" />
    </div>
    <div class="siderBoxBottom"></div>
 </div>

現在のページによっては、空のページleftTile1の値を持つ場合がありEmpty.jspます (これは、たとえば leftTile5 と leftTile6 です)。

<put name="leftTile5" value="/WEB-INF/jsp/InformationTile.jsp"/>
<put name="leftTile6" value="/WEB-INF/jsp/Empty.jsp"/>

タイルに空のページがある場合、ボックスは引き続き表示され、これらすべての空白のボックスが残ります。属性値を取得してタイルを表示しない方法はありますか (つまりif(leftTile1.attribute!="/WEB-INF/jsp/Empty.jsp"){ //show the content; })?

最悪の場合、30 個の jsp ファイルすべてを調べて、コンテンツをタイルのヘッダーとフッターでラップするだけです。

現在の出力と私が取り除きたいもののスクリーンショット: 空白のタイル

4

2 に答える 2

7

テストされていませんが、何も表示する必要がない場合は、属性を /WEB-INF/jsp/Empty.jsp ではなく空の文字列として定義し、レイアウトで次のコードを使用できます。

<tiles:useAttribute name="leftTile1" id="leftTile1"/>
<c:if test="${!empty leftTile1}">
    <div class="siderBoxContent">
        <tiles:insert attribute="leftTile1" />
    </div>
</c:if>
于 2011-12-27T23:22:29.090 に答える
2

最終的にこれはうまくいきました:

<tiles:importAttribute name="leftTile1" scope="request" />
<logic:notEqual name="leftTile1" value="/WEB-INF/jsp/Empty.jsp">
    <div class="siderBox noMargin">
         <div class="siderBoxTop"></div>
         <div class="siderBoxContent">
              <tiles:insert attribute="leftTile1" />
         </div>
         <div class="siderBoxBottom"></div>
     </div>
</logic:notEqual>

JB さん、ご協力ありがとうございます。正しい方向に進むことができました。

于 2011-12-28T18:04:43.793 に答える