Where to put custom taglib descriptor

Should the custom tag library descriptor file go in $CATALINA_HOME/webappname/WEB-INF? Or should it go in $CATALINA_HOME/webappname/? (with the rest of the JSPs)
Thanks.

Ah, thanks. (Malcolm:)I thought it would work anywhere, but good practice seems to suggest that the webapp-specific descriptor files go in WEB-INF and (Norman:) thanks for confirming that. (I didn't know about the tld directory though, which makes sense for organizing large numbers of custom tags.)

Similar Messages

  • Where to put custom function at?

    Let's say I make a custom function, do I make it a CFC or a tag?
    Here is some sample code (I put in bold my function call)
    <cfif IsDefined("form.submit")>
        <cfset data.comment = Trim(HTMLEditFormat(form.comment))>
        <cfset data.name = Trim(REReplace(form.name, "[^A-Za-z0-9 ]", "", "all"))>
        <cfset data.location = Trim(CustomFunction(form.location))><!--- where to put it? as cfc or as a tag? --->
        <cfif data.comment NEQ "">       
            <cfif data.name EQ "">
                <cfset data.name = "Anonymous">
            </cfif>
            <cfinvoke
            component="guestbook.cfc.db"
            method="insert_comment">
            <cfinvokeargument name="form_data" value="#data#"/>
            </cfinvoke>
        <cfelse>
            <cfset message="Comment is required!">
        </cfif>
    </cfif>

    Custom tags are different than udfs.  Let's stick with udfs.  Your location choices are:
    1.  If only one template is going to use it, you can put it in that template.  Otherwise,
    2. You can put it in a .cfm file and cfinclude that file whenever you want to call the function, or
    3. You can put it into a .cfc.
    A little while back, someone ran some tests and posted the results on one of these forums.  The gist of it was that Option 2 would run faster than Option 3.

  • Where to put custom .jar-files in order to use them in scripting QPAC?

    Hi,
    For testing purposes, I wrote a simple class and put it in a .jar-file to use in scripting QPAC. Unfortunately, I get the following error message in JBOSS:
    Class: FooBar not found in namespace
    Where do I have to put custom library (jar-)files in order for JBOSS to find them? I already tried
    [...]\jboss\lib as well as
    [...]\jboss\server\all\lib.
    Regards,
    Steve

    Hi Steve
    You need to put them in two places:
    1. In the server classpath, so that they can be found at runtime. jboss\server\all\lib should work, or you can even drop them into the server/all/deploy directory. I think if you put them in the lib directory, you need to restart Jboss, whereas if you put them in the deploy directory, they should be dynamically picked up.
    2. For testing purposes, the extra jars need to be in the classpath of the Workflow Designer. Please download our SQLPlus QPAC from:
    http://www.avoka.com/avoka/qpac_library.shtml
    It includes a document that describes a technique for adding extra jars to the classpath.
    Regards,
    Howard
    http://www.avoka.com

  • How to install actionscript 2.0 on Mac based Flash CC and where to put custom authoring tools?

    templates?

    you can't add as2 support to flash cc without a major effort.
    however, you can add other flash player support to flash cc without much problem: http://forums.adobe.com/thread/1235145?tstart=0

  • Where to put my customized formatting that Control Hints does not provide?

    To whom that know or have experience with it:
    The control hints does not provide solutions for all possible formatting needs. For example, I need to display only last four digits of social security numbers (i.e., for "123-45-6789", display "***-**-6789"). Another data table column stores school semesters as YYYYMM, e.g., 200902, where 2009 is the year and 02 is the month that represents Spring (MM can also be 06 and 09 that represent Summer and Fall). I need to display the semester in a more user-friendly way (i.e., for "200902", display "Spring 2009"). Of course, I can not change data format in the table; I only seek to format the display of the data.
    I would think that it takes only a few lines of java code to do these formatting by splitting the string into sub-strings, replace some of them with appropriate new values, then re-assemble them. But where to put such code? Does any documentation cover this topic?
    Newman

    Shay,
    I read the document, tried it, and it worked out nicely.
    There is not the getAttributeName() method in the ViewObjectImpl class in version 10.1.3.4, which is the version I am using. But the EO class has it and it works out all the same.
    I don't know how long it would otherwise take me to read and fumble to find out where to put the custom formatting code. Your experience and familiarity with the technology really saved me a huge amount of time. Thank you so much for your help!
    Newman

  • How to install custom taglibs?

    This is driving me crazy. I'm building a JSP application and I'm trying to use the custom tag libraries jstl.jar and standard.jar. I've installed Tomcat vesrion 4 vesrion 27. I can make a reference to the sql.tld, but whenever I add something like <sql:query...etc />, I get the error "Unabled to load class" or "java.lang.NoClassDefFoundError: javax/servlet/jsp/JspContext
    When I put jstl.jar and standard.jar in the WEB-INF\lib directory, Tomcat starts up with a lot of errors("Document is invalid no grammar found").
    I've tried everything, read documentation but I still cannot figure it out.
    +++++The taglib directive in my jsp looks like this:
    <%@taglib prefix="sql" uri="http://java.sun.com/jstl/sql"%>
    ++++The header in my taglib looks like this:
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <!DOCTYPE taglib
    PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
    "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
    <taglib>
    <tlib-version>1.0</tlib-version>
    <jsp-version>1.2</jsp-version>
    <short-name>sql</short-name>
    <uri>http://java.sun.com/jstl/sql</uri>
    <display-name>JSTL sql</display-name>
    <description>JSTL 1.0 sql library</description>
    +++++and my web.xml:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">
    <web-app>
    <taglib>
    <taglib-uri>http://java.sun.com/jstl/sql</taglib-uri>
    <taglib-location>/WEB-INF/sql.tld</taglib-location>
    </taglib>
    </web-app>
    Do I explicitly have to set the classpath? Where do I have to put the standard.jar and the jstl.jar?
    Thanx for your help.
    Frits

    The JSTL JARs should go in your app's WEB-INF/lib. The JARs in that directory are added to the CLASSPATH by Tomcat. That's the proper place for them. No need to edit any CLASSPATH settings. Tomcat ignores any system CLASSPATH that you might have. (I recommend that people delete that environment variable altogether. It does nothing useful that I know of.)
    You should not need to put any <taglib> in your web.xml. The URI that you should use to refer to the taglib is the one inside the .tld file packed in standard.jar. So your JSPs should have lines like this at the top:
    <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>The URI must match the value inside the c.tld:
      <uri>http://java.sun.com/jstl/core</uri>If you do this, Tomcat should be able to find your taglib classes. - MOD

  • Custom Deployment Descriptors?

    Hey all! I'm coming from Eclipse and am loving all the features JDeveloper brings!
    This is a really stupid question, but where does JDeveloper store it's deployment descriptors, and how can you create a custom deployment descriptor such as "persistence.xml" which JBoss uses for customizing it's EJB3 entity handling?
    One thing I've noticed, is that JDeveloper does NOT give me the ability to create folders, to create my J2EE structure.
    Normally, in Eclipse, I build my project with a folder called 'dd' to house all my deployment descriptors such as:
    dd/web/web.xml
    dd/web/faces-config.xml
    dd/web/jboss-web.xml
    dd/ear/application.xml
    dd/ear/jboss.xml
    dd/par/persistence.xml
    etc.........
    Then, I just configure ant to include the deployment descriptor, depending on what portion of the project I'm building. Then, I create a 'build' folder, to house my compiled jars, war, and ear files.
    How do you all create your project structure when you can't create folders?
    I've moved to JDeveloper because it is the only IDE that allows me to build drag-and-drop Faces projects while still allowing me to compile against EJB3.0 libraries.
    I'd really like to be able to make this work. Obviously there is a better way, so I'm asking for everyone's expertise on how YOU create your J2EE structures with JDeveloper.
    Thanks in advance!! Great product. I just need to get over my initial Eclipse-mode of thinking.
    ~~Aaron

    Hmmmmm.
    I'm building my ant build.xml files now. But I've run into a hitch, and am curious on how the other JDevelopers get around it.
    JDeveloper splits my application up into Projects. So, I now have two projects: My Model project and my ViewController project for my entity/session beans and my web files respectively.
    I can create a build.xml file for my entity (jar files) and a build.xml file for my web (war files), but normally, most people put a build.xml file in the root of the project to merge the web and J2EE files into an EAR.
    JDeveloper won't allow me to put a build.xml file in the root of my Application to jar up all my project files into an EAR.
    I found a really good article on Oracle's website, but it mainly dealt with Maven, and not Ant.
    Could someone give me their experience on how you create your Ant structure? Granted, I could just add everything into a single build.xml file in my model project, but then, that could get confusing to other developers using my code, as well as, in a team environment, where each developer has their own build.xml file for the project they are responsible for.
    Thanks!
    Message was edited by:
    Neelixx

  • Runtime exceptions in custom taglib

    I am getting errors of the type:
              javax.servlet.ServletException: runtime failure in custom tag
              The problem is the error is happening in a taglib, but Weblogic is hiding the
              original stack trace, and substituting it's own, which is useless in this case. Is
              there any way to get the original stack trace?
              -Jeff
              

    With custom tags, each interface method needs to be entirely in a try..catch
              to support debugging. WL hides the exact exception information. For
              example:
              public int doEndTag() throws JspException
              try
              catch (Throwable e)
              throw e instanceof JspException ? (JspException) e : new
              JspTagException(e.getMessage());
              Cameron Purdy
              [email protected]
              http://www.tangosol.com
              WebLogic Consulting Available
              "Brian Homrich" <[email protected]> wrote in message
              news:[email protected]...
              > I'm getting the same type of error in the situation where an error has
              occured
              > in a page, my client uses "Back" on the browser, then tries another page
              > (which uses a custom taglib).
              >
              > If I stop, then restart WL, all is ok. The page where the runtime
              failure
              > occured is ok now.
              >
              > Have you made any progress getting a stack trace, and have you found
              anything
              > interesting?
              >
              > Does anyone know why a failure on one page would cause the custom tags
              > on another to fail like this? (Both pages use the same tag, but aren't
              calls
              > to a tag done independently?)
              >
              > Brian
              >
              > Jeff Nowakowski wrote:
              >
              > > I am getting errors of the type:
              > >
              > > javax.servlet.ServletException: runtime failure in custom tag
              > >
              > > The problem is the error is happening in a taglib, but Weblogic is
              hiding the
              > > original stack trace, and substituting it's own, which is useless in
              this case. Is
              > > there any way to get the original stack trace?
              > >
              > > -Jeff
              >
              

  • Custom taglib with nested tag not working

    Hi everybody,
    I have a question concerning a custom taglib. I want to create a tag with nested child tags. The parent tag is some kind of iterator, the child elements shall do something with each iterated object. The parent tag extends BodyTagSupport, i have overriden the methods doInitBody and doAfterBody. doInitBody initializes the iterator and puts the first object in the pageContext to be used by the child tag. doAfterBody gets the next iterator object and puts that in the pageContext, if possible. It returns with BodyTag.EVAL_BODY_AGAIN when another object is available, otherwise BodyTag.SKIP_BODY.
    The child tag extends SimpleTagSupport and does something with the given object, if it's there.
    In the tld-file I have configured both tags with name, class and body-content (tagdependent for the parent, empty for the child).
    The parent tag is being executed as I expected. But unfortunately the nested child tag does not get executed. If I define that one outside of its parent, it works fine (without object, of course).
    Can somebody tell me what I might have missed? Do I have to do something special with a nested tag inside a custom tag?
    Any help is greatly appreciated!
    Thanks a lot in advance!
    Greetings,
    Peter

    Hi again,
    unfortunately this didn't work.
    I prepared a simple example to show what isn't working. Perhaps it's easier then to show what my problem is:
    I have the following two tag classes:
    public class TestIterator extends BodyTagSupport {
        private Iterator testIteratorChild;
        @Override
        public void doInitBody() throws JspException {
            super.doInitBody();
            System.out.println("TestIterator: doInitBody");
            List list = Arrays.asList(new String[] { "one", "two", "three" });
            testIteratorChild = list.iterator();
        @Override
        public int doAfterBody() throws JspException {
            int result = BodyTag.SKIP_BODY;
            System.out.println("TestIterator: doAfterBody");
            if (testIteratorChild.hasNext()) {
                pageContext.setAttribute("child", testIteratorChild.next());
                result = BodyTag.EVAL_BODY_AGAIN;
            return result;
    public class TestIteratorChild extends SimpleTagSupport {
        @Override
        public void doTag() throws JspException, IOException {
            super.doTag();
            System.out.println(getJspContext().getAttribute("child"));
            System.out.println("TestIteratorChild: doTag");
    }The Iterator is the parent tag, the Child shall be shown in each iteration. My taglib.tld looks like the following:
    <?xml version="1.0" encoding="UTF-8"?>
    <taglib
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee web-jsptaglibrary_2_1.xsd"
         xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.1">
         <tlib-version>1.0</tlib-version>
         <short-name>cms-taglib</short-name>
         <uri>http://www.pgoetz.de/taglibs/cms</uri>
         <tag>
              <name>test-iterator</name>
              <tag-class>de.pgoetz.cms.taglib.TestIterator</tag-class>
              <body-content>tagdependent</body-content>
         </tag>
         <tag>
              <name>test-iterator-child</name>
              <tag-class>de.pgoetz.cms.taglib.TestIteratorChild</tag-class>
              <body-content>empty</body-content>
         </tag>
    </taglib>And the snippet of my jsp is as follows:
         <!-- TestIterator -->
         <cms:test-iterator>
              <cms:test-iterator-child />
         </cms:test-iterator>The result is that on my console I get the following output:
    09:28:01,656 INFO [STDOUT] TestIterator: doInitBody
    09:28:01,656 INFO [STDOUT] TestIterator: doAfterBody
    09:28:01,656 INFO [STDOUT] TestIterator: doAfterBody
    09:28:01,656 INFO [STDOUT] TestIterator: doAfterBody
    09:28:01,656 INFO [STDOUT] TestIterator: doAfterBody
    So the child is never executed.
    It would be a great help if anybody could tell me what's going wrong here.
    Thanks and greetings from germany!
    Peter
    Message was edited by:
    Peter_Goetz

  • Architecture question...where to put the code

    Newbie here, so please be gentle and explicit (no detail is
    too much to give or insulting to me).
    I'm hoping one of you architecture/design gurus can help me
    with this. I am trying to use good principals of design and not
    have code scattered all over the place and also use OO as much as
    possible. Therefore I would appreciate very much some advice on
    best practices/good design for the following situation.
    On my main timeline I have a frame where I instantiate all my
    objects. These objects refer to movieClips and textFields etc. that
    are on a content frame on that timeline. I have all the
    instantiation code in a function called initialize() which I call
    from the content frame. All this works just fine. One of the
    objects on the content frame is a movieClip which I allow the user
    to go forward and backward in using some navigation controls.
    Again, the object that manages all that is instantiated on the main
    timeline in the initialize() function and works fine too. So here's
    my question. I would like to add some interactive objects on some
    of the frames of the movieClip I allow the user to navigate forward
    and backward in (lets call it NavClip) . For example on frame 1 I
    might have a button, on frame 2 and 3 nothing, on frame 4 maybe a
    clip I allow the user to drag around etc. So I thought I would add
    a layer to NavClip where I will have key frames and put the various
    interactive assets on the appropriate key frames. So now I don't
    know where to put the code that instantiates these objects (i.e.
    the objects that know how to deal with the events and such for each
    of these interactive assets). I tried putting the code on my main
    timeline, but realized that I can't address the interactive assets
    until the NavClip is on the frame that holds the particular asset.
    I'm trying not to sprinkle code all over the place, so what do I
    do? I thought I might be able to address the assets by just
    providing a name for the asset and not a reference to the asset
    itself, and then address the asset that way (i.e.
    NavClip["interactive_mc"] instead of NavClip.interactive_mc), but
    then I thought that's not good since I think there is no type
    checking when you use the NavClip["interactive_mc"] form.
    I hope I'm not being too dim a bulb on this and have missed
    something really obvious. Thanks in advance to anyone who can help
    me use a best practice.

    1. First of all, the code should be:
    var myDraggable:Draggable=new Draggable(myClip_mc);
    myDraggable.initDrag();
    Where initDrag() is defined in the Draggable class. When you
    start coding functions on the timeline... that's asking for
    problems.
    >>Do I wind up with another object each time this
    function is called
    Well, no, but. That would totally depend on the code in the
    (Draggable) class. Let's say you would have a private static var
    counter (private static, so a class property instead of an instance
    property) and you would increment that counter using a
    setInterval(). The second time you enter the frame and create a new
    Draggable object... the counter starts at the last value of the
    'old' object. So, you don't get another object with your function
    literal but you still end up with a faulty program. And the same
    goes for listener objects that are not removed, tweens that are
    running and so on.
    The destroy() method in a custom class (=object, I can't
    stress that enough...) needs to do the cleanup, removing anything
    you don't need anymore.
    2. if myDraggable != undefined
    You shouldn't be using that, period. If you don't need the
    asset anymore, delete it using the destroy() method. Again, if you
    want to make sure only one instance of a custom object is alive,
    use the Singleton design pattern. To elaborate on inheritance:
    define the Draggable class (class Draggable extends MovieClip) and
    connect it to the myClip_mc using the linkage identifier in the
    library). In the Draggable class you can define a function unOnLoad
    (an event fired when myClip_mc is removed using
    myClip_mc.removeMovieClip()...) and do the cleanup there.
    3. A destroy() method performs a cleanup of any assets we
    don't need anymore to make sure we don't end up with all kinds of
    stuff hanging around in the memory. When you extend the MovieClip
    Class you can (additionally) use the onUnLoad event. And with the
    code you posted, no it wouldn't delete the myClip_mc unless you
    program it to do so.

  • Where to put Validation Code?

    Up until now, Im still having second-thoughts of where to put validation code when setting attributes of an entity.
    Right now I have created lots of custom validators --(implement JbovalidatorInterface) that calls stored procedures to validate the value entered. But sometimes, i just use a ViewObject and query it on the setterAttribute method of the Entity and just manually throw a JboException of the value is invalid based on some business rule.
    Question is, what are the best practices where to put validation codes? do we have to be strict that we always put all validations on Validators or are we free to just throw JboExceptions anywhere on the BC classes' code.
    regards,
    Anton

    1. The reason I have a custom validator and I don't normally use the built in declarative validators is that the error message generated when the validation fails is fixed, only one message. I decided to have create a custom validator is that I need to test a one attribute for many cases in each case should produce a distinct error message. So if I use the built in validators, I would have to create lots of built in validators for that single attribute only. (and i have lots of entities and lots of attributes that needs business rule validation). So, I decided to create a custom validator, that calls the stored procedure, the stored procedure takes care of all test cases, for that attribute only, and I can return a dynamic error message depending on the test case that failed. What do you think about the approach?
    It's a little extra work to create a reusable validator class that will only be used once, but whether you do it that way or encapsulate the call in a helper class that your one-off method validator code delegates too, it seems similar to me. So it's more of a stylistic choice for you which you like better. Now, if your reusable validator were enable to encapsulate
    2. When I said anywhere; I meant inside the setterAttribute methods on the Entity and on the ViewRowImpl, orThe ViewImpl class or inside a method on an ApplicationModule?
    Rather than writing code in the setAttribute, I recommend using attribute-level method validators. This makes it more clear where all your validation code lives.
    I don't recommend performing validation in the view object level since entity objects are the component in the system that are tasked with handling validation. It would be easy to circumvent view level validation checks unless you make a lot of assumptions about exactly how your application is working.
    3. One other issue is that Validator methods are for validation purposes only. So its not a good idea to put in attribute setters to other attributes inside there. So you put the attribute setter logic outside of the validator usually inside the setAttribute() just after validator returns. But there are cases that is very straightfoward to put validation logic inside the setAttribute; meaning, inside the setAttribute() method, I test for a condition, if it fails, just throw a JboException, if its true, continue with the otherAttributes setter logic.
    Whether attribute setting of other attributes is performed in a setter method or in an attribute-level method validator, either way you will need conditional logic to avoid going into a validation "loop" (which eventually will throw an exception if after 10 attempts the object is still not valid at posting time.

  • JSP custom taglib

    Hi, I've a big problem:
    I tried to realize my first custom taglib for converting a .jasper file (a precompilated formatted meta-document) into a PDF file but I poorly failed... :(
    Unfortunatly, although the code run correctly into a main class into a stand alone sample application, the same code (opportunely adapted) doesen't work correctly if used by a JSP with its relative custom tag library.
    The error message is:
    javax.servlet.ServletException: Error loading expression class : report_semplice
         org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:872)
         org.apache.jasper.runtime.PageContextImpl.access$1100(PageContextImpl.java:114)
         org.apache.jasper.runtime.PageContextImpl$12.run(PageContextImpl.java:792)
         java.security.AccessController.doPrivileged(Native Method)
         org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:790)
         org.apache.jsp.reportPDF_jsp._jspService(reportPDF_jsp.java:82)
         org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:141)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:861)
         org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)
         org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:306)
         org.apache.jasper.servlet.JspServlet.service(JspServlet.java:253)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:861)
         sun.reflect.GeneratedMethodAccessor178.invoke(Unknown Source)
         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         java.lang.reflect.Method.invoke(Method.java:324)
         org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:289)
         java.security.AccessController.doPrivileged(Native Method)
         javax.security.auth.Subject.doAsPrivileged(Subject.java:500)
         org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:311)
         org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:205)
    root cause
    javax.servlet.jsp.JspTagException: Error loading expression class : report_semplice
         com.tag.GeneratePDF.doEndTag(GeneratePDF.java:72)
         org.apache.jsp.reportPDF_jsp._jspx_meth_JR_GeneratePDF_0(reportPDF_jsp.java:99)
         org.apache.jsp.reportPDF_jsp._jspService(reportPDF_jsp.java:71)
         org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:141)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:861)
         org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)
         org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:306)
         org.apache.jasper.servlet.JspServlet.service(JspServlet.java:253)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:861)
         sun.reflect.GeneratedMethodAccessor178.invoke(Unknown Source)
         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         java.lang.reflect.Method.invoke(Method.java:324)
         org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:289)
         java.security.AccessController.doPrivileged(Native Method)
         javax.security.auth.Subject.doAsPrivileged(Subject.java:500)
         org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:311)
         org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:205)
    The code of the taglib class is:
    package com.tag;
    import javax.servlet.jsp.*;
    import javax.servlet.jsp.tagext.*;
    import net.sf.jasperreports.engine.*;
    import net.sf.jasperreports.engine.export.*;
    import net.sf.jasperreports.engine.util.*;
    import net.sf.jasperreports.view.*;
    import java.sql.*;
    import org.apache.commons.logging.*;
    import java.io.*;
    import java.util.*;
    public class GeneratePDF extends TagSupport
      private String sourceFileName = "C:\\default.jasper";
      private String destinationFileName = "C:\\default.pdf";
      public void setSourceFileName(String sourceFileName)
        this.sourceFileName = sourceFileName;
      public void setDestinationFileName(String destinationFileName)
        this.destinationFileName = destinationFileName;
      public int doStartTag()
          return SKIP_BODY;
      public int doEndTag() throws JspTagException
        try
            //Passaggio parametri da passare al jasper.
            Map parameters = new HashMap();
            parameters.put("param1", new Integer(1));
            //Preparazione del file da stampare (in questa fase si esegue la query e si inseriscono
            //i valori estratti dalla query)
            JasperPrint jasperPrint=JasperFillManager.fillReport(sourceFileName, parameters, getConnection());
            // a schermo
            // JasperViewer.viewReport(jasperPrint);
           // test
           //pageContext.getOut().println("Destination File:" + destinationFileName);       
        //Creazione del PDF
            JasperExportManager.exportReportToPdfFile(jasperPrint, destinationFileName);
        //    System.exit(0);
           catch(Exception e)
                { throw new JspTagException(e.getMessage());
        return EVAL_PAGE;
    /**Metodo per creare la connessione al DB*/
    private static Connection getConnection() throws ClassNotFoundException, SQLException {
    //Change these settings according to your local configuration
    String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
    String connectString = "jdbc:odbc:gecoware";
    String user = "admin";
    String password = "password";
    Class.forName(driver);
    Connection conn = DriverManager.getConnection(connectString, user, password);
    return conn;
    The .TLD file is:
    <?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>JR</shortname>
        <uri>ReportTags</uri>
        <info>Tag library per la generazione di report a partire da files .jasper</info>
        <tag>
            <name>GeneratePDF</name>
            <tagclass>com.tag.GeneratePDF</tagclass>
            <bodycontent>empty</bodycontent>
            <info>Tag per la generazione di PDF</info>
            <attribute>
              <name>sourceFileName</name>
            </attribute>
            <attribute>
              <name>destinationFileName</name>
            </attribute>
        </tag>
    </taglib>
    And the JSP code is:
    <%@ page contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.*" errorPage="" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <%@ taglib uri="ReportTags" prefix="JR" %>
    <html>
    <head>
    <title>GeneratePDF</title>
    </head>
    <body>
    <JR:GeneratePDF sourceFileName="c:\\report_semplice.jasper" destinationFileName="c:\\report1.pdf"/>
    </body>
    </html>
    I hope that someone could help me...
    Thank you,
    AleX

    Hi,
              I think that the container can not identify the tag's ,what you are trying to use.
              As per the j2ee specification , we need to follow the procedure to use the taglib as given below
              Procedure for using a Tag Lib :
              â€¢ Copy tag lib jar files under WEB-INF/lib ( if tag handler supplied as classes without package a jar file then we need to copy the classes under WEB_INF/classes.
              â€¢ Copy the tld files files under WEB-INF or create a directory under WEB-INF and copy tld files under this directory.
              â€¢ We need to give the information about the tag libraries in web.xml by adding the following lines to it as,
              <taglib>
              <taglib-uri>http://www.inet.com/taglibs/bodytags</taglib-uri>
              <taglib-location>/WEB-INF/tlib/tlib1.tld </taglib-location>
              </taglib>
              To use tags in jsp file we need to add taglib directive as ,
              <%@ taglib uri="http://www.inet.com/taglibs/samptags" prefix=“abc"%>
              Every tag can support zero or more number of attributes and a tag may or may not support body content.
              weblogic server try to parse the .tld file whenever the tags are encountered in jsp files.
              As per the .tld file the container identify the attributes of the tags which were defined in .tld file.
              ------ Anilkumar kari

  • Where to put ringtones in the N9?

    I dont really know where to put this thread. So mods feel free to move it.
    I didnt really care for any of the stock ring tones on the N9, and I had a ring tone on my N97 that was the sound played on Star Trek TNG when the shuttle bay doors would start to open. The problem here is the N9 only lets you shop for new tones, or pull them out of your music.
    I had put up with this on my N97, occasionally hearing this tone while listening to music because I had searched high and low how to put this tone and not have it imported into the music library.
    Is there anyway to put this Mp3 file on my N9 so that it will see it in the Ringtones list, but not end up in the Music player?
    Thanks a ton
    Solved!
    Go to Solution.

    go to
    settings/security/developer mode
    and enable it.
    it will have you download and install some files. tap ok.
    you should be able to just open the filebox (free download from ovi store) and then go to:
    /home/user/MyDocs
    and then tap and hold, select copy on the all the ringtones you want to copy and then tap the up-arrow (bottom left corner) and you will be in /home/user/
    scroll down to .ring-tones
    tap it to open the folder
    then tap the clipboard and select the ringtones to paste there.
    it should be done. you should be able to see it when you go to select the sounds.
    i have not used these to do individual ringtones for contacts, but have customized the sounds in:
    settings/sounds and vigbration
    for all my rintone, maeil alert tone, message alert tone, calendar alarm tone.
    i have been using the same nokia sounds for these since 2004
    you could also do the following with terminal
    open terminal
    devel-su (enter)
    rootme (enter)
    cp -R /home/user/MyDocs/(file name.mp3) /home/user/.ring-tones/
    you can do that for each different ringtone, just changing the file name.
    to make it easier with terminal, if after you enter the first one, just tap the top right corner for the menu, and select toolbar, then arrows.
    now just tap the up-arrow and then use the left/right arrows to change the file name and then tap enter again. this should save a bit of time once you are good at it.

  • Custom taglibs w/ JSP features

    Hello Together,
    I am currently facing a little problem:
    I use custom taglibs for rendering certain web elements (lets say widgets etc.). The reason is greater reusability and full integration into the runtime. However, what do you recommend on how to render such components?
    As far as i know, there are only two solutions:
    - embedding markup (e.g. XHTML, XML...) into the tag class (not so good, especially when large chunks of markup)
    - reading from markup templates located on the file system and populating them w/ data (slow?).
    What do you use for custom taglibs that are to render markup contents (thus, no flow taglibs)?
    I know that i can fallback to pure JSPs, but there is no elegant way calling them with parameters. The reason is that i have "abstract control classes" with some properties. According to these properties, my taglib renders the control. When doing this with a JSP fragment, there is no "cool" way:
    the class proto: an GUI class with properties
    - id
    - caption
    - state
    - etc.
    -- taglib example --
    <some:guiElement obj="${controls.current}" method="xml" />
    This taglib can query all properties by the obj reference and render.
    -- JSP equivalent w/ JSTL call --
    <c:import url="/base/guiElement.jsp?id=${controls.current.id}&caption=${controls.current.caption}[...]" />
    This is bad design, and all params have to be passed seperately (or not?).
    You see, Taglibs are quite more handy to use, as you know. But i am missing JSP features in taglibs, such as how to do an <c:import /> from within an taglib etc.
    Another thing in mind is themeability. One can use a copy of the JSP fragment and modify its visual appearance, but w/ taglibs, that is more harder (except when using markup templates).
    Does anyone knoe how to marry JSP featires into custom taglibs?
    Sorry for that long posting :-)
    Greetings, Timo

    Hello,
    Just an answer to myself and anyone who is interested:
    The solution to my problem is migrating to JSP 2.0 where you can use tag template files.
    Thus, if possible, upgrading to JSP 2.0 + Servlet 2.4 does the job.
    Greetings, Timo

  • JSP Custom Taglib Help

    Dear All,
    I am developing a simple calender system where I want to be able to add entries for a specific time and date similar to Outlook. I have a customer Taglib to create an Outlook style calendar. I can hard code entries such as below in the JSP but am not sure how I could generate these dynamically by filling in a booking form. Any guidance would be much appreciated as I have spent hours reading JSP books and websites without a resolution.
    <CAL:outlook width="220px" end="21" onClick="setEvent">
    <CAL:event start="10:00" end="11:00" eventMark="#00FF33">Meeting 1</CAL:event>
    <CAL:event start="11:30" end="13:00">Meeting 1</CAL:event>
    <CAL:event start="13:30" end="14:00">Meeting 2</CAL:event>
    </CAL:outlook>
    Thanks in advance
    Message was edited by:
    MikeS27
    Message was edited by:
    MikeS27

    Apologies, I have posted this in the wrong forum. Relocating.

Maybe you are looking for