thanks very much, let me try.

Mike

2009/3/9 Martin Gainty <mgai...@hotmail.com>

>
> <!-- start of taglib declaration my is the reference to the taglib which
> the jsp uses to reference JavaScriptExampleTag-->
> <tag>
>  <name>my</name>
>  <tag-class>JavaScriptExampleTag</tag-class>
>  <info>Display Alert Box</info>
>     <attribute>
>      <name>message</name>
>      <required>true</required>
>      <description><![CDATA[Put some message to echo here]]></description>
>    </attribute>
>    <attribute>
>      <name>id</name>
>      <required>false</required>
>      <rtexprvalue>false</rtexprvalue>
>      <description><![CDATA[id for referencing element. For UI and form tags
> it will be used as HTML id attribute]]></description>
>    </attribute>
>    <attribute>
>    <attribute>
>      <name>name</name>
>      <required>true</required>
>      <rtexprvalue>false</rtexprvalue>
>      <description><![CDATA[..Name ..]]></description>
>    </attribute>
>    <attribute>
> ......
> </tag>
>
> <!-- at start of jsp put all of your taglib declarations so the prefix my
> associates my to the JavaScriptExampleTag.tld such as what you see below-->
>
> <%@ page contentType="text/html;charset=UTF-8" language="java" %>
> <%@ taglib uri="/WEB-INF/tld/JavaScriptExampleTag.tld" prefix="my"
> name="my"%>
>
> i didnt see the 'message' attribute in your BodyTagSupports declared
> variables or an accessor e.g.
> public class JavaScriptExampleTag extends BodyTagSupport {
> ........
> //String storage allocation for message
>   public String message;
> //mutator
>    public void setMessage(String message) {
>        this.message = message;
>    }
> //accessor
>    public void getMessage() {
>
>       return this.message;
>
>    }
>
> .......
> }
>
>
> http://java.sun.com/products/servlet/2.2/javadoc/javax/servlet/jsp/tagext/TagInfo.html
> implement pidster's advice for everything else..
>
> Martin
> ______________________________________________
> Disclaimer and confidentiality note
> Everything in this e-mail and any attachments relates to the official
> business of Sender. This transmission is of a confidential nature and Sender
> does not endorse distribution to any party other than intended recipient.
> Sender does not necessarily endorse content contained within this
> transmission.
>
>
>
>
> > Date: Sun, 8 Mar 2009 14:20:09 +0000
> > From: p...@pidster.com
> > To: users@tomcat.apache.org
> > Subject: Re: tomcat 6.0.18 issue with my customer Tag class
> >
> > Mike.G wrote:
> > > Hi, everyone,
> > > I run the tomcat 6.0.18 on my ubuntu 8.04.2, the jdk version is
> 1.6.0_07
> > >
> > > I configure  the localhost 's ROOT to my home directory
> /home/ghw/myjava
> > > the configuration file like this:
> > >
> > > <?xml version='1.0' encoding='utf-8'?>
> > >
> > > <Server port="8005" shutdown="SHUTDOWN">
> > >
> > >   <Listener className="org.apache.catalina.core.AprLifecycleListener"
> > > SSLEngine="on" />
> > >    <Listener className="org.apache.catalina.core.JasperListener" />
> > >    <Listener
> className="org.apache.catalina.mbeans.ServerLifecycleListener"
> > > />
> > >   <Listener
> > > className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"
> />
> > >
> > >   <GlobalNamingResources>
> > >      <Resource name="UserDatabase" auth="Container"
> > >               type="org.apache.catalina.UserDatabase"
> > >               description="User database that can be updated and saved"
> > >
> factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
> > >               pathname="conf/tomcat-users.xml" />
> > >   </GlobalNamingResources>
> > >
> > >   <Service name="Catalina">
> > >     <Connector port="8080" protocol="HTTP/1.1"
> > >                connectionTimeout="20000"
> > >                redirectPort="8443" />
> > >     <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
> > >    <Engine name="Catalina" defaultHost="localhost">
> > >       <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
> > >              resourceName="UserDatabase"/>
> > >       <Host name="localhost"  appBase="webapps"
> > >             unpackWARs="true" autoDeploy="true"
> > >             xmlValidation="false" xmlNamespaceAware="false">
> > >
> > >        </Host>
> > >     </Engine>
> > >   </Service>
> > > </Server>
> > >
> > >
> > > and I created the directory understand
> CATALINE_HOME/conf/Catalina/localhost
> > > and create a ROOT.xml in there
> > > like this:
> > > <?xml version="1.0" encoding="utf-8"?>
> > >
> > > <Context path="" docBase="/home/ghw/myjava" debug="9" reloadable="9" >
> > >
> > > </Context>
> > >
> > > when write a test index.jsp in /home/ghw/myjava, it works.
> > >
> > >
> > > and when I try to write a Tag class in there, it will be report Error:
> > >
> > > *type* Exception report
> > >
> > > *message*
> > >
> > > *description* *The server encountered an internal error () that
> prevented it
> > > from fulfilling this request.*
> > >
> > > *exception*
> > >
> > > org.apache.jasper.JasperException: Unable to compile class for JSP:
> > >
> > > An error occurred at line: 10 in the jsp file: /test.jsp
> > > JavaScriptExampleTag cannot be resolved to a type
> > > 7:     </head>
> > > 8:     <body>
> > > 9:         <p>This is a simple test page </p>
> > > 10:         <my:message>
> > > 11:             This is a simple java alert message
> > > 12:         </my:message>
> > > 13:
> > >
> > >
> > > An error occurred at line: 10 in the jsp file: /test.jsp
> > > JavaScriptExampleTag cannot be resolved to a type
> > > 7:     </head>
> > > 8:     <body>
> > > 9:         <p>This is a simple test page </p>
> > > 10:         <my:message>
> > > 11:             This is a simple java alert message
> > > 12:         </my:message>
> > > 13:
> > >
> > >
> > > An error occurred at line: 10 in the jsp file: /test.jsp
> > > JavaScriptExampleTag cannot be resolved to a type
> > > 7:     </head>
> > > 8:     <body>
> > > 9:         <p>This is a simple test page </p>
> > > 10:         <my:message>
> > > 11:             This is a simple java alert message
> > > 12:         </my:message>
> > > 13:
> > >
> > >
> > > Stacktrace:
> > >
> org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
> > >
> org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
> > >
> org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:423)
> > >     org.apache.jasper.compiler.Compiler.compile(Compiler.java:317)
> > >     org.apache.jasper.compiler.Compiler.compile(Compiler.java:295)
> > >     org.apache.jasper.compiler.Compiler.compile(Compiler.java:282)
> > >
> org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)
> > >
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
> > >
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
> > >     org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
> > >
> > >
> > > here is my web.xml
> > >     <taglib>
> > >         <taglib-uri>
> > >             /WEB-INF/tld/JavaScriptExampleTag.tld
> > >         </taglib-uri>
> > >
> > >         <taglib-location>
> > >             /WEB-INF/tld/JavaScriptExampleTag.tld
> > >         </taglib-location>
> > >     </taglib>
> > >
> > >
> > > and the tld file is like this:
> > > <?xml version="1.0" encoding="utf-8"?>
> > >
> > > <!DOCTYPE taglib
> > >         PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
> > >         "http://java.sun.com/j2ee/dtd/web-jsptaglibrary_1_2.dtd";>
> > >
> > > <taglib>
> > >     <tlib-version>1.0</tlib-version>
> > >     <jsp-version>1.2</jsp-version>
> > >     <short-name>JavaScriptExampleTag</short-name>
> > >     <uri>/WEB-INF/tld/JavaScriptExampleTag.tld</uri>
> > >     <description>
> > >         A simple tab library for the examples
> > >     </description>
> > >
> > >     <tag>
> > >         <name>message</name>
> > >         <tag-class>JavaScriptExampleTag</tag-class>
> > >         <info>Display Alert Box</info>
> > >     </tag>
> > >
> > >
> > >
> > > </taglib>
> > >
> > >
> > > and the Tag class like this:
> > > import java.io.IOException;
> > > import javax.servlet.jsp.*;
> > > import javax.servlet.jsp.tagext.*;
> > >
> > > public class JavaScriptExampleTag extends BodyTagSupport {
> > >     public int doEndTag() throws JspTagException {
> > >         String ls_alert = "";
> > >
> > >         try {
> > >             BodyContent lbc_bodycurrent = getBodyContent();
> > >
> > >             if ( lbc_bodycurrent != null ) {
> > >                 String ls_message = lbc_bodycurrent.getString();
> > >                 JavaScriptExample JS = new JavaScriptExample();
> > >
> > >                 ls_alert = JS.alert(ls_message.trim());
> > >
> > >             }
> > >
> > >             pageContext.getOut().write(ls_alert);
> > >
> > >         } catch ( IOException e ) {
> > >             throw new JspTagException("Error " + e.toString());
> > >         }
> > >         return EVAL_PAGE;
> > >     }
> > > }
> >
> > Put your tag class in a package, and make sure the tag class is in the
> > correct folder like so:
> >
> >  myapp/index.jsp
> >  myapp/WEB-INF/classes/com/myapp/YourTag.class
> >  myapp/WEB-INF/tld/YourTag.tld
> >
> > Adjust the tag class definition in the the TLD accordingly.
> >
> > p
> >
> >
> >
> > > and the Bean class is like this:
> > > import java.io.Serializable;
> > >
> > > public class JavaScriptExample implements Serializable {
> > >
> > >     public JavaScriptExample() {
> > >
> > >     }
> > >
> > >     public String alert(Object aobj_data) {
> > >         return( start_script + " alert(\" " +
> > >                 aobj_data.toString() + "\");" +
> > >                 end_script );
> > >     }
> > >
> > >
> > >
> > >     //private area
> > >     private String start_script = "<script language=\"javascript\">";
> > >     private String end_script = "</script>";
> > >
> > >
> > >
> > > }
> > >
> > >
> > > anyone can help me on this?
> > >
> > > thanks very much
> > >
> > >
> > > Mike
> > >     javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> > >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> > For additional commands, e-mail: users-h...@tomcat.apache.org
> >
>
> _________________________________________________________________
> Express your personality in color! Preview and select themes for Hotmail®.
>
> http://www.windowslive-hotmail.com/LearnMore/personalize.aspx?ocid=TXT_MSGTX_WL_HM_express_032009#colortheme
>

Reply via email to