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 回答