Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    40

    Passaggio dati da servlet a jsp

    Buongiorno a tutti,
    sto effettuando un'applicazione web protetta e ho la necessità di poter distinguere vari di TIPI di utenti (es:administrator, visione dati, modifica di alcuni dati)

    Sono in diffoltà in quanto non so come passare questo dato dall aservlet alla jsp, o meglio, nella servlet ho questa istruzione:

    request.getSession().setAttribute("utente", utente);
    response.sendRedirect(request.getContextPath() + "/Home");

    dove utente è una classe in cui ho il paramentro TIPOutente.

    Nella home.jsp devo poter visualizzare diversi possibili link ad altre pagine in funzione del TIPOutente.
    Per un maggiore ordine di lettura dei progetti io non inserisco codice Java, ma uso jstl, x cui la mia jsp è così strutturata:

    <c:if test="${! empty sessionScope.utente}">
    <cut value="${utente.tipo}">
    <c:choose>
    <c:when test="value=1">
    <td>"><fmt:message key="href.utenti"/></td>
    <td>"><fmt:message key="href.giacenze"/></td>
    <td>"><fmt:message key="href.logout"/> <cut value="${sessionScope.utente.nomeCompleto}"/></td>
    </c:when>
    <c:when test="value=2">
    <td>"><fmt:message key="href.giacenze"/></td>
    <td>"><fmt:message key="href.logout"/> <cut value="${sessionScope.utente.nomeCompleto}"/></td>
    </c:when>
    </c:choose>
    </cut>
    </c:if>


    nonostante il <cut> mi restituisca il valore corretto, i <c:when> non vogliono saperne di funzionare. Credo ci sia un errore di sintassi nel test, ma non so proprio come risolvero.

    Qualcuno è in grado di aiutarmi?

    Grazie mille

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Passaggio dati da servlet a jsp

    Originariamente inviato da aerith9
    <cut value="${utente.tipo}">

    <c:when test="value=1">
    <c:when test="value=2">

    nonostante il <cut> mi restituisca il valore corretto, i <c:when> non vogliono saperne di funzionare. Credo ci sia un errore di sintassi nel test, ma non so proprio come risolvero.
    Sì, come hai intuito, il test non è corretto. Per farlo corretto semplicemente usi nuovamente una espressione EL nel test.

    <c:when test="${utente.tipo == 1}">

    <c:when test="${utente.tipo == 2}">

    EDIT: Ma ancora molto meglio sarebbe un'altra cosa: per evitare di dover "cablare" delle costanti nella espressione di test, sarebbe meglio se la tua classe "esponesse" delle proprietà booleane che rispecchiano i tipi/funzionalità che ti interessa testare.

    Se la tua classe che rappresenta l'utente avesse un metodo:

    public boolean isAdministrator() { ... qui testi il tipo ... }

    nella espressione EL basterebbe mettere semplicemente:

    <c:when test="${utente.administrator}">

    per verificare se l'utente è un administrator. (nota: nella espressione il "administrator" è il nome della proprietà ... non il nome del metodo!!)
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    40
    Bella la tua idea!non ci avevo pensato!

    Grazie mille

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.