在前言中,我不使用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文件,并使用页眉的页眉和页脚包装内容。
当前输出的屏幕截图以及我想摆脱的内容:
答案 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,它让我指出了正确的方向。