Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    115

    JSP - inclusione file all'interno di una pagina

    ciao,
    sto creando un'applicazione JSP con il pattern MVC. Ho necessità di includere o meno una nuova pagina jsp all'interno della pagina chiamante, ma non capisco come posso fare.
    Al momento ho solo avuto pagine che aprono nuove pagine.
    ad esempio se mi trovo nella pageA e devo aprire la pageB faccio così

    codice:
    ServletContext sc = getServletContext();
    RequestDispatcher rd = sc.getRequestDispatcher("/pageB.jsp");
    rd.forward(request, response);
    ma se dovessi includere pageB all'interno della pageA?
    Mi chiedo in pratica se c'è un modo in una servlet di includere una pagina jsp all'interno della pagina chiamante.

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

    Re: JSP - inclusione file all'interno di una pagina

    Originariamente inviato da symonx80
    ma se dovessi includere pageB all'interno della pageA?
    Qui bisognerebbe capire meglio dove vuoi fare la inclusione (in una servlet se ho capito bene?).

    Comunque: RequestDispatcher ha anche un include() ... non solo forward.

    E a livello di JSP esiste la direttiva <%@ include %>, la standard action <jsp:include> e JSTL ha la <c:import>
    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
    Sep 2004
    Messaggi
    115
    Sto lavorando all'interno di un controller, che è una servlet.Prendo le varie action delle mie pagine jsp e ridirigo l'applicazione verso le pagine richieste.
    Ho provato scrivendo

    codice:
                 ServletContext sc = getServletContext();
                	RequestDispatcher rd = sc.getRequestDispatcher("/pageA.jsp");
                	out.println("File generato!");
                	rd.include(request, response);
    In questo modo mi appare la scritta, anche se appare in cima alla pagina e non dove vorrei io...

    Ora le domande sono due:

    1- se volessi includere una pagina jsp, anzichè una frase come ho fatto io, come posso fare?
    2-Se mi accontentassi di includere una frase di testo in questo modo, ci sarebbe possibilità di inserirla in una posizione specifica della pagina?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da symonx80
    1- se volessi includere una pagina jsp, anzichè una frase come ho fatto io, come posso fare?
    2-Se mi accontentassi di includere una frase di testo in questo modo, ci sarebbe possibilità di inserirla in una posizione specifica della pagina?
    Chiariamo: se intendi davvero usare la separazione dei "ruoli" come inteso da MVC, allora la servlet dovrebbe fare solo da "controller", eseguire i suoi lavori, impostare eventuali dati nei vari "scope" (tipicamente request e/o session) e poi fare 1 forward ad una pagina JSP che fa da "view". Questa è la cosa "tipica" che si fa.

    Poi bisognerebbe vedere cosa vuoi includere di preciso (sempre una certa pagina? O dipende da varie condizioni?) e a che livello (solo in una pagina? per tutte le pagine?).

    Si può fare tutto ... ma dovresti precisare. Se in una pagina a.jsp ti interessa includere in un certo punto b.jsp, allora usa o la direttiva include o la standard action include. Altrimenti appunto, spiega meglio.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    115
    Originariamente inviato da andbin
    Chiariamo: se intendi davvero usare la separazione dei "ruoli" come inteso da MVC, allora la servlet dovrebbe fare solo da "controller", eseguire i suoi lavori, impostare eventuali dati nei vari "scope" (tipicamente request e/o session) e poi fare 1 forward ad una pagina JSP che fa da "view". Questa è la cosa "tipica" che si fa.
    Ho una pagina a.jsp di registrazione con un tasto REGISTRA.
    Al click del tasto avviene la registrazione. Il controller dovrebbe mantenere a stessa pagina ma aggiungere un messaggio di avvenuta registrazione subito sotto il mio tasto.

    In un'altro caso alla pressione del tasto sulla pagina a.jsp vorrei che si mantenesse la pagina dove e' stato premuto il tasto e che al di sotto di esso apparisse inclusa una pagina b.jsp

    Spero di essere stato piu' chiaro stavolta

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da symonx80
    Ho una pagina a.jsp di registrazione con un tasto REGISTRA.
    Al click del tasto avviene la registrazione. Il controller dovrebbe mantenere a stessa pagina ma aggiungere un messaggio di avvenuta registrazione subito sotto il mio tasto.
    Fai un forward nuovamente a quella pagina jsp e lì dentro usi tutto quello che vuoi (scriptlet, expression, EL ecc...) per fare una logica "se registrato mostra la scritta blabla".

    Originariamente inviato da symonx80
    In un'altro caso alla pressione del tasto sulla pagina a.jsp vorrei che si mantenesse la pagina dove e' stato premuto il tasto e che al di sotto di esso apparisse inclusa una pagina b.jsp
    Idem, più meno a sopra. Nella pagina fai i test che vuoi per mostrare o includere quello che vuoi.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    115
    Ho capito,grazie.
    E' una brutta idea utilizzare un attributo da controllare sulla pagina jsp?
    tipo boolean?

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da symonx80
    E' una brutta idea utilizzare un attributo da controllare sulla pagina jsp?
    tipo boolean?
    Non è affatto "brutto"! Anzi ... è l'approccio tipico che si usa. La servlet imposta degli attributi in uno o più dei vari "scope", generalmente in request e/o session e poi fa il forward ad una jsp. La jsp può usare scriptlet/expression o EL anche eventualmente combinato con JSTL o altri custom tag per testare valori, mandare in output dati, ecc...
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.