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

    Custom tag JSP errore disposizione files

    Salve.

    Non riesco a far funzionare un semplice esempio di Custom tag JSP.
    Penso che l'errore dipenda dall'errata disposizione dei files. Eclipse infatti mi segnala questo come errore. Se invece provo a fare il deploy dell'applicazione mi si blocca Tomcat

    Ecco la disposizione dei files dopo aver fatto l'Export WAR con Eclipse:
    Codice PHP:
    SimpleCustomTag
    |
    |-- 
    WEB-INF
    |   |-- classes
    |   |   `-- ch06
    |   |       |-- SimpleTag.class
    |   |       
    `-- SimpleTag.java
    |   |-- example.tld
    |   `-- web.xml
    `-- index.jsp 
    Ecco i sorgenti dei files:
    1. index.jsp (penso sia qui l'errore!)
    Codice PHP:
    <html>
    <
    head>
    <
    title>Sample Custom Tag</title>
    </
    head>
    <
    body>
        <%@
    taglib prefix="ch06" uri="/WEB-INF/example.tld"%>
        <
    ch06:simple/>
    </
    body>
    </
    html
    2. example.tld
    Codice PHP:
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <!DOCTYPE taglib
            PUBLIC "-//Sun Microsystems, Inc.//
            DTD JSP Tag Library 1.1//EN"
            "http://java.sun.com/j2ee/dtds/
            web-jsptaglibrary_1_1.dtd">



    <taglib>
       <tlibversion>1.0</tlibversion>
       <jspversion>1.1</jspversion>
       <shortname>ch06</shortname>
       <uri></uri>
       <info>A simple tab library for the examples</info>

      <tag>
        <name>simple</name>
        <tagclass>ch06.SimpleTag</tagclass> 
        <info>Print some text</info>
        <bodycontent>empty</bodycontent>
      </tag>         
    </taglib>
    3. SimpleTag.java
    Codice PHP:
    package ch06;

    import javax.servlet.jsp.tagext.*;
    import javax.servlet.jsp.*;
    import java.io.*;

    public class 
    SimpleTag extends BodyTagSupport {

        public 
    int doStartTag() throws JspException {
            
    JspWriter out pageContext.getOut();
            try {
                
    out.print("Simple empty custom tag");
            } catch (
    IOException ioe) {
                throw new 
    JspTagException("I/O Exception");
            }
            return 
    SKIP_BODY;
        }


    Grazie dell'attenzione,
    Matteo
    Gutta cavat lapidem
    [La goccia scava la pietra]
    ***
    (Ovidio)

  2. #2
    Risolto

    Cercando su questo forum ho visto che un'altra persona aveva avuto in passato il mio stesso identico problema....io!

    Anche l'altra volta però non ottenni risposta alcuna...
    Ho messo il tld in un package
    Gutta cavat lapidem
    [La goccia scava la pietra]
    ***
    (Ovidio)

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    3

    Problema custom tag semplice

    Ciao sto realizzando il mio primo custom tag nel container tomcat, ma non riesco a farlo proprio funzionare.
    Ho creato i seguenti files:


    ----------\webapps\TagPerson\tagdibenvenuto.jsp



    <%@ taglib uri="/WEB-INF/tlds/mialib.tld" prefix="util" %>
    <html>
    <head>
    <title>Pagina che visualizza un messaggio di benvenuto</title>
    </head>

    <body>

    <!-- Invochiamo la direttiva per la localizzazione del descrittore della libreria dei tag.
    Nell'uri si specifica il percorso assoluto o relativo del tld e nel prefix viene specificato
    il prefisso che distingue il tag personalizzato dai tag built-in -->


    Questo messaggio: <util:welcome/>
    è stato prodotto da un tag personalizzato.
    </body>
    </html>



    --------\webapps\TagPerson\WEB-INF\classes\miei_tag\WelcomeTagHandler.java

    //Handler di tag personalizzato che gestisce un semplice tag
    package miei_tag;

    //Java core packages
    import java.io.*;

    //Packages delle estensioni java
    import javax.servlet.jsp.*;
    import javax.servlet.jsp.tagext.*;

    //Classe WelcomeTagHandler implementa l'interfaccia Tag estendendo la classe TagSupport
    public class WelcomeTagHandler extends TagSupport
    {
    //Il metodo richiamato per iniziare l'esecuzione dei tag è doStartTag.
    //Il JSP container lo invoca quando incontra l'apertura di un tag personalizzato.
    public int doStartTag() throws JspException
    {
    //Tentativo di esecuzione del tag
    try{
    //ottiene il JspWriter per il contenuto di output
    JspWriter out = pageContext.getOut(); //Viene utilizzato l'oggeto pageContext (ereditato da TagSupport), per ottenere
    //l'oggetto JspWriter necessario a scrivere il testo di output
    out.println("Messaggio proveniente dal tag");
    }

    //gestione delle eccezioni
    catch ( IOException ioException )
    {
    throw new JspException ( ioException.getMessage() );
    }

    return SKIP_BODY; //ignora il corpo del tag (altrnativa a EVAL_BODY_INCLUDE)
    }
    }




    --------------\webapps\TagPerson\WEB-INF\tlds\mialib.tld

    <taglib>
    <tlibversion>1.0</tlibversion>
    <jspversion>1.1</jspversion>

    <shortname>Libreria personale</shortname>
    <info> Una semplice libreria di tag di generica utilità </info>

    <tag>
    <name>welcome</name>
    <tagclass>miei_tag.WelcomeTagHandler </tagclass>
    <bodycontent>empty</bodycontent>
    <info>Inserisce un testo di benvenuto</info>
    </tag>

    </taglib>




    Ho compilato il file java e creato WelcomeTagHandler.class ma se provo a lanciare la pagina jsp non funziona, mi dice:

    org.apache.jasper.JasperException: Unable to initialize TldLocationsCache: XML parsing error on file /WEB-INF/tlds/mialib.tld

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.