Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    144

    [JSP] Creazione tag custom includendo codice java

    Salve ragazzi,
    ho il seguente codice:

    codice:
    <c:choose>
      <c:when test="${param.funzionalita == 'prima'}">
    
        <%
           Utente utente = new Utente();
        %>
    
    
        <html>
          <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    	<title>Titolo</title>
            <link rel="stylesheet" type="text/css" href="style.css"/>
          </head>
          <body>
            <h2>Titolo 2</h2>
    
            <%
               int numero=0;
               //Ciclo
               for (Utente utente:utenti) {
                 //codice java
               }
               .
               .
               .
    
             %>
    
      </c:when>
    </c:choose>
    a questo punto vorrei creare dei tag custom jstl in modo da sostituire con essi tutto il codice java visibile in alto.
    Sono sufficienti dei file .tag oppure devo creare delle vere e proprie classi (.class) da inserire poi nella directory WEB-INF dell'applicazione?

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

    Re: [JSP] Creazione tag custom includendo codice java

    Originariamente inviato da Mistral82
    a questo punto vorrei creare dei tag custom jstl in modo da sostituire con essi tutto il codice java visibile in alto.
    Sono sufficienti dei file .tag oppure devo creare delle vere e proprie classi (.class) da inserire poi nella directory WEB-INF dell'applicazione?
    Alt. Prima di partire in quarta nello scrivere tu un nuovo custom tag (è questo che intendevi, no?), verifica se puoi togliere lo scriptlet e sostituirlo con l'uso di standard action (le <jsp:blabla>) e/o custom tag ma già fatti di altre librerie (come JSTL, che vedo già usi).
    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
    Oct 2005
    Messaggi
    144
    Ho già verificato e non posso sostituire integralmente il codice java.

    So scrivere già tag personalizzati (file .tag) ma con al loro interno altre custom tag (standard o di altre librerie).
    Mi chiedevo se fosse possibile al loro interno posizionare del codice java in alternativa alle custom tag. Oppure bisogna creare direttamente delle classi java (in questo caso esistono delle guide online)?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Mistral82
    Ho già verificato e non posso sostituire integralmente il codice java.
    Ok, era solo per chiarire.

    Originariamente inviato da Mistral82
    So scrivere già tag personalizzati (file .tag) ma con al loro interno altre custom tag (standard o di altre librerie).
    Mi chiedevo se fosse possibile al loro interno posizionare del codice java in alternativa alle custom tag. Oppure bisogna creare direttamente delle classi java (in questo caso esistono delle guide online)?
    I custom tag, fin da quando sono stati possibili, si scrivono in genere con classi Java che devono implementare una determinata interfaccia. A partire dalle JSP 2.0 (Servlet v2.4) è possibile creare quelli che si chiamano "simple tag", dei custom tag sempre scritti con classi Java ma che devono implementare un'altra interfaccia. E i custom tag che si potevano scrivere nell'altro modo sono ora chiamati "classic tag" (per differenziarli).
    In più sempre da JSP 2.0 è possibile creare dei "tag file" (i .tag) che alla fin fine vengono trasformati in codice Java che definisce un "simple tag".
    La differenza tra "classic tag" e "simple tag" sta non solo nella interfaccia ma anche nel suo "ciclo di vita" che nei simple tag è più semplice e conciso.

    La particolarità dei "simple tag" (e quindi dei "tag file") è che quando li usi/invochi in una pagina il loro "body" non può contenere scriptlet. E attenzione, per i tag file non vuol dire che all'interno del .tag non puoi usare scriptlet. No, lì puoi usarli. È proprio quando invochi un simple tag/tag file che non puoi mettere nel body dello scriptlet.

    Riassumendo, da JSP 2.0:
    - "classic tag" implementati con codice Java.
    - "simple tag" implementati con codice Java.
    - "tag file" implementati con un documento .tag simile a .jsp e trasformati in "simple tag".

    E in rete trovi tonnellate di risorse a riguardo. Comunque se hai altri dubbi, chiedi pure.
    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
    Oct 2005
    Messaggi
    144
    Intanto ti ringrazio per aver approfondito le differenze tra le modalità di creazione dei tag custom!
    Vediamo poi se ho capito, da quello che ho letto quindi è possibile fare una cosa del genere:


    nometag.tag
    codice:
    <%@ tag body-content="empty" %>
       <%-- empty non permette di usare un body quando viene richiamato il tag --%>
    
    <%@ attribute name="nomeattributo" rtexprvalue="true" required="true" %>
       <%-- eventuali attributi per il tag --%>
    
            CODICE JAVA

    che sarà poi trasformato in un simple tag...

    O sbaglio?

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Mistral82
    nometag.tag
    codice:
    <%@ tag body-content="empty" %>
       <%-- empty non permette di usare un body quando viene richiamato il tag --%>
    
    <%@ attribute name="nomeattributo" rtexprvalue="true" required="true" %>
       <%-- eventuali attributi per il tag --%>
    
            CODICE JAVA
    Sì, qui dentro (nel .tag) puoi usare scriptlet <% ... %> e <%= ... %> che contiene codice Java.

    Il custom tag indicato sopra ha body "empty" (vuoto) ma se così non fosse è allora lì, nella invocazione del tag, che non puoi usare scriptlet all'interno del body.
    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
    Oct 2005
    Messaggi
    144
    Ti ringrazio!
    Ho risolto il mio problema dividendo così il codice jsp da quello java creando degli opportuni file .tag !!

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.