अगर ... JSP या JSTL के भीतर


283

मैं एक JSP फ़ाइल में कुछ शर्त के आधार पर कुछ HTML कोड आउटपुट करना चाहता हूं।

if (condition 1) {
    Some HTML code specific for condition 1
}
else if (condition 2) {
    Some HTML code specific for condition 2
}

मैं उसे कैसे कर सकता हूँ? क्या मुझे JSTL का उपयोग करना चाहिए?


1
परीक्षाफल के कुछ अच्छे उदाहरण हैं। एक नज़र> exampedepot.8waytrips.com/egs/javax.servlet.jsp.jstl.core/…
darkapple

जवाबों:


536

क्या मुझे JSTL का उपयोग करना चाहिए?

हाँ।

आप JSTL का उपयोग करके jsp में सशर्त प्रतिपादन बनाने के लिए उपयोग <c:if>और <c:choose>टैग कर सकते हैं ।

अनुकरण करने के लिए , यदि आप उपयोग कर सकते हैं:

<c:if test="condition"></c:if>

अनुकरण करने के लिए यदि ... और , आप उपयोग कर सकते हैं:

<c:choose>
    <c:when test="${param.enter=='1'}">
        pizza. 
        <br />
    </c:when>    
    <c:otherwise>
        pizzas. 
        <br />
    </c:otherwise>
</c:choose>

उस के लिए Thx ... वास्तव में मैं UI देव में अधिक हूँ ... तो JSTL का अधिक ज्ञान नहीं है..क्या आप मुझे JSTL का एक समान काम करने का उदाहरण प्रदान करते हैं..मैं के लिए इसका मतलब है ..
testndtv

उदाहरण के लिए Thx.. मेरे पास जो हालत है वह वास्तव में एक JS कंडीशन है..
if

1
अच्छी तरह से JSTL सर्वर के अंत में निष्पादित करेगा यह HTML को इसमें से बाहर निकलेगा और इसे ग्राहक को भेजेगा
जिगर जोशी

ठीक है..यह ठीक है ... लेकिन वास्तविक स्थिति के लिए अर्थात परीक्षण = "स्थिति" ... क्या मैं कोई JS शर्त निर्दिष्ट कर सकता हूं और यदि हां, तो क्या मैं इसे सीधे लिख सकता हूं जैसे मैं लिख सकता हूं <c: जब परीक्षण = "नेविगेटर .userAgent.match (/ iPad / i)! = null; ">
testndtv

क्या आप अपने प्रश्न को उस स्थिति से अपडेट कर सकते हैं जिसे आप परीक्षण करना चाहते हैं
जिगर जोशी

170

यदि आप अलग-अलग पाठ का उत्पादन करना चाहते हैं, तो एक अधिक संक्षिप्त उदाहरण होगा

${condition ? "some text when true" : "some text when false"}

यह c: select से छोटा है ।


यह जावास्क्रिप्ट है या .jsp?
अन्यदेवी

1
किसी भी सुझाव के रूप में बूलियन चर का उपयोग करते समय काम नहीं कर रहा है?
अदनाने।

क्या इसे एक विशेष टैग में संलग्न करने की आवश्यकता है, या इसे सीधे HTML में पेस्ट करें?
कोड़ीबगस्टीन

5
@ ऑर्टडेवी: यह जेएसटीएल है, जिसका उपयोग जेएसपी फाइल में किया जा सकता है। सशर्त या टर्नरी ऑपरेटर कई अन्य भाषाओं में मौजूद है, हालांकि, जावास्क्रिप्ट सहित।
bergie3000 20

2
@ bergie3000: नहीं , यह JSTL नहीं है । यह ईएल है
बालूसी

105

इसके लिए निर्माण है:

<c:choose>
   <c:when test="${..}">...</c:when> <!-- if condition -->
   <c:when test="${..}">...</c:when> <!-- else if condition -->
   <c:otherwise>...</c:otherwise>    <!-- else condition -->
</c:choose>

यदि स्थिति महंगी नहीं है, तो मैं कभी-कभी केवल दो अलग-अलग <c:ifटैग का उपयोग करना पसंद करता हूं - यह पढ़ने में आसान बनाता है।


4
क्या मैं यह मान सकता हूं कि यदि पहले जब स्थिति संतुष्ट है, तो दूसरी जब निष्पादित नहीं होगी?
होप

क्योंकि आपको एक शुरुआत के लिए बॉक्स से बाहर की सामग्री की सहायता मिलती है। और क्योंकि webdevs इसे अभी तक सीखे बिना उपयोग कर सकते हैं- dsl
Bozho

11
<%@ taglib prefix='c' uri='http://java.sun.com/jsp/jstl/core' %>
<c:set var="val" value="5"/>
<c:choose> 
  <c:when test="${val == '5'}">
    Value is 5
  </c:when>
  <c:otherwise>
    Value is not 5
  </c:otherwise>
</c:choose>

10

यदि आप तार की तुलना करना चाहते हैं , तो निम्नलिखित JSTL लिखें:

<c:choose>
    <c:when test="${myvar.equals('foo')}">
        ...
    </c:when>
    <c:when test="${myvar.equals('bar')}">
        ...
    </c:when>
    <c:otherwise>
        ...
    </c:otherwise>
</c:choose>

मुझे लगता है कि आप नए (ईश) कंटेनरों पर केवल टॉमकोट 7+ की तरह तरीकों (जैसे। असमान) का आह्वान कर सकते हैं।
रिंग


2
<%@ taglib prefix='c' uri='http://java.sun.com/jsp/jstl/core' %>
<c:set var="isiPad" value="value"/>
<c:choose>
   <!-- if condition -->
   <c:when test="${...}">Html Code</c:when> 
   <!-- else condition -->
   <c:otherwise>Html code</c:otherwise>   
</c:choose>


-1

यदि आप JSTL टैग लिब का उपयोग करके निम्नलिखित करना चाहते हैं, तो कृपया निम्नलिखित चरणों का पालन करें:

[आवश्यकता] यदि कोई संख्या ४० के बराबर और ५० से कम की ग्रेटर है तो "दो अंकों की संख्या ४" से शुरू होती है अन्यथा "अन्य संख्या" से प्रदर्शित करें।

[समाधान]

1. Please Add the JSTL tag lib on the top of the page.`
     <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>`

2. Please Write the following code
`
<c:choose>
       <c:when test="${params.number >=40 && params.number <50}">
              <p> Two digit number starting with 4. </p>
       </c:when>
       <c:otherwise>
              <p> Other numbers. </p>
       </c:otherwise>
  </c:choose>`

-1

आप अंदर- <% %>बाहर jsp पेज और html कोड में -अन्य शर्त लिख सकते हैं<% %>

उदाहरण के लिए:

   <%
        String username = (String)session.getAttribute("username");
        if(username==null)  {
    %>            
        <p> username is null</p> //html code
    <%
        } else {
    %>
        <p> username is not null</p> //html code
    <%
        }
    %>

-1

यदि आप तार की तुलना करना चाहते हैं, तो निम्नलिखित JSTL लिखें:

<c:choose>
    <c:when test="${myvar.equals('foo')}">
        ...
    </c:when>
    <c:when test="${myvar.equals('bar')}">
        ...
    </c:when>
    <c:otherwise>
        ...
    </c:otherwise>
</c:choose>

-1
<c:choose>
<c:when test="${not empty userid and userid ne null}">
      <sql:query dataSource="${dbsource}" var="usersql">
                SELECT * FROM newuser WHERE ID = ?;
                <sql:param value="${param.userid}" />
      </sql:query>
 </c:when>
 <c:otherwise >
       <sql:query dataSource="${dbsource}" var="usersql">
                 SELECT * FROM newuser WHERE username = ?;
                 <sql:param value="${param.username}" />
       </sql:query>                              
  </c:otherwise>


यह समाधान प्रदान कर सकता है लेकिन कृपया कोड के साथ कुछ विवरण जोड़ने पर विचार करें
पटेल रोमिल

-2

मेरे पास एक ही समस्या थी और मुझे लगा कि अगर हालत है तो आप एक JSTL में जावास्क्रिप्ट का उपयोग नहीं कर सकते ।

जावास्क्रिप्ट में एक तरह का वर्कअराउंड हो सकता है:

<script>

    var isiPad = navigator.userAgent.match(/iPad/i) != null;

    if (isiPad) {
        document.write("Some HTML code for con1");
    } else {
        document.write("Some HTML code for con2");
    }

</script>

आपको यह स्क्रिप्ट डालनी होगी जहाँ आप जिस html कोड को लिखना चाहते हैं वह होना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.