2010-12-22 13 views
8

मैं पेज टेम्पलेट्स बनाने के लिए जेएसपी का उपयोग करने के लिए निम्नलिखित ट्यूटोरियल JSP tricks to make templating easier? पर आया हूं (मैं इसे इतने लंबे समय तक कैसे याद कर चुका हूं?!?)। हालांकि, कुछ खोज करने के बाद, मुझे यह पता लगाना प्रतीत नहीं होता कि (या यदि यह संभव है) यह जांचने के लिए कि कोई जेएसपी टुकड़ा सेट किया गया है या नहीं।जांचें कि क्या जेएसपी खंड सेट किया गया है

यहाँ मैं क्या कर रहा हूँ का एक उदाहरण है:

मैं default.tag नामक एक टेम्पलेट है। यह 2 JSP गुण परिभाषित के रूप में निम्नानुसार है:

<%@attribute name="title" fragment="true" required="true" %> 
<%@attribute name="heading" fragment="true" %> 

फिर पृष्ठ के कोड में, मैं पेज <jsp:invoke fragment="title" /> करने के लिए सेट की <title> तत्व है। फिर बाद में पेज नीचे, मैं निम्नलिखित है:

<c:choose> 
    <c:when test="${true}"> 
     <jsp:invoke fragment="heading" /> 
    </c:when> 
    <c:otherwise> 
     <jsp:invoke fragment="title" /> 
    </c:otherwise> 
</c:choose> 

मैं कहां से <c:when test="${true}"> है, मैं अगर heading टुकड़ा है ताकि इसे प्रदर्शित करने के लिए निर्धारित किया गया है की जाँच करने में सक्षम होना चाहता हूँ, लेकिन यदि नहीं, तो के लिए डिफ़ॉल्ट title खंड।

उत्तर

11

कुछ और गड़बड़ करने के बाद, मैं अपने स्वयं के प्रश्न का उत्तर देने जा रहा हूं। यह पता चला है कि attribute को दिया गया नाम वास्तव में एक चर भी बन जाता है। इसलिए, मैं निम्नलिखित कर सकता हूं:

<c:choose> 
    <c:when test="${not empty heading}"> 
     <jsp:invoke fragment="heading" /> 
    </c:when> 
    <c:otherwise> 
     <jsp:invoke fragment="title" /> 
    </c:otherwise> 
</c:choose> 

मुझे बस इतना करना था। ऐसा लगता है कि मैं इसे होने की तुलना में इसे कठिन बनाने की कोशिश कर रहा था!

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