我想知道是否有可能在Apache Tiles 2(或引用Tiles属性的JSTL,这将适用于)中使用if/else。基本上,我想要这样:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>
<div>
<!-- Some stuff here -->
</div>
<tiles:if condition="showSecondDiv == 'true'">
<div>
<!-- Some second stuff here -->
</div>
</tiles:if>Tiles XML中有<put-attribute name="showSecondDiv" value="true" type="string" />。这样做的动机是我想在很多地方重用这个JSP,有些地方想同时显示两个div,有些地方只想显示一个。
发布于 2011-08-11 23:09:57
使用JSTL
示例:
<c:if test="${!empty tilesAdditionalTitle}">
<fmt:param value="${requestScope[tilesAdditionalTitle]}" />
</c:if>发布于 2017-10-24 12:57:11
您可以对if/else条件使用Tag importAttribute。
layout.xml
<tiles-definitions>
<definition name="base" template="/WEB-INF/view/template.jsp">
<put-attribute name="header" value="/WEB-INF/view/header.jsp" />
<put-attribute name="footer" value="/WEB-INF/view/footer.jsp" />
<put-attribute name="sidebar" value="/WEB-INF/view/sidebar.jsp" />
<put-attribute name="showSideBar" value="Y" />
</definition>
</tiles-definitions>template.jsp
<body>
<t:importAttribute name="showSideBar"/>
<t:insertAttribute name="header"/><br/>
<div class="uk-container uk-container-center">
<div class="uk-grid">
<c:if test="${showSideBar == 'Y'}">
<div class="uk-width-1-3">
<t:insertAttribute name="sidebar"/>
</div>
</c:if>
<div class="${showSideBar == 'Y' ? 'uk-width-2-3' : 'uk-width-1-1'}">
<t:insertAttribute name="body"/>
</div>
</div>
</div>
<%@include file="/WEB-INF/view/common/loading.jsp"%>
<t:insertAttribute name="footer"/>
</body>如果不想显示,则在layout.xml文件中设置<put-attribute name="showSideBar" value=""/>。
https://stackoverflow.com/questions/7028014
复制相似问题