2011-08-11 13 views
5

मैं सोच रहा हूं कि अपाचे टाइल्स 2 (या जेएसटीएल जो टाइल्स विशेषता का संदर्भ देता है, जो काम करेगा) के साथ एक/अन्य होना संभव है।अपाचे टाइल्स यदि/अन्य

<%@ 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> 

वहाँ टाइलें एक्सएमएल में <put-attribute name="showSecondDiv" value="true" type="string" /> है: मूल रूप से, मैं इस चाहते हैं। प्रेरणा यह है कि मैं इस जेएसपी को कई स्थानों पर पुन: उपयोग करना चाहता हूं, कुछ जो दोनों divs दिखाना चाहते हैं, अन्य जो केवल एक दिखाना चाहते हैं।

उत्तर

3

का उपयोग JSTL
उदाहरण:

 <c:if test="${!empty tilesAdditionalTitle}"> 
     <fmt:param value="${requestScope[tilesAdditionalTitle]}" /> 
    </c:if> 
+0

क्या यह मेरे टाइल्स एक्सएमएल में घोषित विशेषता का संदर्भ देगा? – Nik

+0

टाइल्स अतिरिक्त टाइटल यह विशेषता – Nook

+0

ठीक है, और 'requestScope [] 'भाग क्या है? – Nik

1

आप 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=""/> निर्धारित किया है।

संबंधित मुद्दे