Struts Tiles - 获取属性

时间:2011-12-27 21:42:14

标签: jsp tomcat struts tiles konakart

在前言中,我不使用Java或Struts,但我理解代码中发生了什么。在编写代码时,我很无能为力。我正在与KonaKart合作,他们使用struts tile来显示布局。

以下是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文件,并使用页眉的页眉和页脚包装内容。

当前输出的屏幕截图以及我想摆脱的内容: Blank tiles

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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,它让我指出了正确的方向。