Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    24

    [JSP] include condizionato

    come posso eseguire in jsp un include condizionato? in php era facilissimo facevo:
    if(cond)
    include pagina1
    else
    include pagina2

    in jsp nn lo posso fare xk l'include nn è un instruzione ma una direttiva che nn riesco ad inserire nel codice, qualche suggerimento?

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Beh, usando JSTL, puoi fare esattamente come in PHP:

    codice:
    <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    
    ...
    <c:if test="condizione">
       <%@include file="tuo_file.jsp" %>
    </c:if>
    Per avere anche l'else, puoi usare il costrutto choose:

    codice:
    <c:choose>
       <c:when test="condizione">
          <%@include file="tuo_file.jsp" %>
       </c:when>
       <c:otherwise>
          <%@include file="altro_file.jsp" %>
       </c:otherwise>
    </c:choose>
    Ma anche senza JSTL puoi tranquillamente usare le direttive standard JSP:

    codice:
    <% if ( condizione ) { %>
       <%@include file="..." %>
    <% } else { %>
       <%@include file="..." %>
    <% } %>
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    ed aggiungo che vale lo stesso per le jsp:include

    esempio
    codice:
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
    
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>JSP Page</title>
        </head>
        <body>
            <h1>Include Demo</h1>
            
    
    
                RED INCLUDE BLUE INCLUDE
            </p>
            
    
    
                <%
                try {
                if (request.getParameter("include").equalsIgnoreCase("red")) {
                %>
                  <jsp:include page="includes/redinclude.jsp" flush="true"></jsp:include>
                <%
                }
                if (request.getParameter("include").equalsIgnoreCase("blue")) { %>
                  <jsp:include page="includes/blueinclude.jsp" flush="true"></jsp:include>
                <% 
                  }
                }
                catch (Exception e) {}
                %>
            </p>
        </body>
    </html>
    dove redinclude.jsp e blueinclude.jsp sono semplici
    redinclude.jsp
    codice:
    <h1 style="color: red">This has been included</h1>
    blueinclude.jsp
    codice:
    <h1 style="color: blue">This has been included</h1>
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    24
    Originariamente inviato da LeleFT
    ...
    codice:
    <% if ( condizione ) { %>
       <%@include file="..." %>
    <% } else { %>
       <%@include file="..." %>
    <% } %>
    ...
    questa soluzione l'avevo provata e non me la compilava nemmeno O.o, comunque grazie dell'aiuto

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da Favozza
    questa soluzione l'avevo provata e non me la compilava nemmeno O.o, comunque grazie dell'aiuto
    Forse perchè il codice da me postato fa ancora uso della JSTL. Se vuoi fare a meno di questa libreria puoi usare le direttive standard JSP come ha detto Andrea1979:

    codice:
    <% if ( condizione ) { %>
       <jsp:include page="..." flush="true"></jsp:include>
    <% } else { %>
       <jsp:include page="..." flush="true"></jsp:include>
    <% } %>
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.