312 votes

si ... autrement dans JSP ou JSTL

J'ai une sorte de question ouverte..

Je veux avoir un code HTML en fonction de la condition (bureau/ipad)..dire que la Condition 1/2

Je veux avoir séparé des extraits de code HTML pour chacune de ces conditions...

if (Condition 1)
Some HTML code for con1
else if (Condition 2)
Some HTML code for con2

La condition je veux tester (en JS);

var isiPad = navigator.userAgent.match(/iPad/i) != null;
if (isiPad)
{}
else
{}

Maintenant, ceci doit être mis en œuvre dans un .page jsp...

Alors, comment dois-je faire? Dois-je utiliser JSTL ? Quelle est la meilleure façon de faire?

La chose principale est que seul le code correspondant doit effectivement être chargée/rendu par exemple, si la condition 1 est vraie, le code HTML dans la condition 2 ne doit pas être exécutée à tout (en plus d'être caché dans le navigateur)

589voto

Jigar Joshi Points 116533

Dois-je utiliser JSTL?

Oui

vous pouvez utiliser les balises <c:if> , <c:choose> pour effectuer un rendu conditionnel dans jsp en utilisant JSTL

simuler si, vous pouvez utiliser

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

simuler si..else, vous pouvez utiliser

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

      <c:otherwise>pizzas.
      <br />
      </c:otherwise>
</c:choose>
 

175voto

KIR Points 2789

Si vous voulez juste sortir un texte différent, un exemple plus concis serait

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

C'est beaucoup plus court que c: choisissez .

12voto

aebersold Points 1967

Dans le cas où vous voulez comparer des chaînes , écrivez le JSTL suivant:

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

-2voto

Vous pouvez utiliser un scriptlet JSP:

 <% if(Condition 1) { %>
<!-- Some HTML code for con1 -->            
<% } else if(Condition 2){ %>
<!-- Some HTML code for con2 -->
<% } %>
 

En général, vous pouvez placer du code Java normal entre le <%%>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X