Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [JSP] Custom Tag errore

    Salve,

    Ho problemi con questo semplice esempio di Tag JSP personalizzato.
    Si tratta di un semplice Hello World a cui viene passato un nome utente. Ecco i files:

    1) La pagina JSP
    Codice PHP:
    ...
    <%@ 
    taglib uri="WEB-INF/helloTag.tld" prefix="ct" %>
    ...
    <
    ct:hello name="Matteo"/>
    ... 
    2) Il file TLD
    Codice PHP:
    ...
    <
    taglib>
        <
    tlibversion>1.0</tlibversion>
        <
    jspversion>1.1</jspversion>
        <
    shortname>helloTag</shortname>
        <
    tag>
            <
    name>hello</name>
            <
    tagclass>HelloTag</tagclass>
            <
    bodycontent>empty</bodycontent>
            <
    attribute>
                <
    name>name</name>
                <
    required>true</required>            
            </
    attribute>        
        </
    tag>
    </
    taglib
    3) La classe Handler java:
    Codice PHP:
    public class HelloTag extends BodyTagSupport {
        private 
    String name;

        
    // Metodi setter e getter

        
    public int doStartTag() throws JspException {
            try {
                
    JspWriter out pageContext.getOut();
                
    out.println("Ciao " +name);
            } catch (
    IOException e) {
                throw new 
    JspTagException("I/O Exception");
            }
            return 
    SKIP_BODY;
        }


    L'errore riportatomi è:

    org.apache.jasper.JasperException: Unable to compile class for JSP:

    An error occurred at line: 11 in the jsp file: /index.jsp
    HelloTag cannot be resolved to a type
    8: <title>Custom Tag</title>
    9: </head>
    10: <body>
    11: <ct:hello name="Matteo"/>
    12: </body>
    13: </html>



    Qualche suggerimento?
    Grazie dell'attenzione,

    Matteo.
    Gutta cavat lapidem
    [La goccia scava la pietra]
    ***
    (Ovidio)

  2. #2
    prova con:
    [codice]
    <%@ taglib uri="/WEB-INF/helloTag.tld" prefix="ct" %>
    [/codice]

    nota: / rpima di WEB-INF

  3. #3
    Ciao,

    anzitutto grazie della risposta.
    Ho apportato questa modifica, ma purtroppo il risultato è sempre lo stesso errore
    Tra l'altro l'esempio è una semplificazione del codice presente in un articolo di questo sito sui Tag personalizzati. Altri esercizi mi funzionano...questo no e non riesco a capire perché
    Gutta cavat lapidem
    [La goccia scava la pietra]
    ***
    (Ovidio)

  4. #4
    Risolto!
    Non ho capito benissimo il motivo ma sta di fatto che se metto la classe HelloTag.java in un package (da me chiamato handler) e, ovviamente, specifico questo package anche nel tagclass del file TLD allora funziona.
    Sicuramente, quindi, il file TLD non trovava l'handler associato...ma devo per forza mettere i file handler in un packege?
    Vabbè per ora prendo atto della cosa...tutto sommato mettere gli handler in un package è anche una buona abitudine

    Grazie cmq dell'attenzione...ma se qualcuno sa qualcosa a riguardo mi informi

    Gutta cavat lapidem
    [La goccia scava la pietra]
    ***
    (Ovidio)

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.