Using JSP tags and tag libraries



You can use JSP tags from any JSP tag library. For example, you can use any of the custom tags in the open-source Apache Jakarta Project Taglibs project tag libraries, located at http://jakarta.apache.org/taglibs/index.html. This project consists of several individual JSP custom tag libraries for purposes ranging from JNDI access to generating random text strings.

Using a JSP tag in a ColdFusion page

JSP pages use a standard set of tags, such as jsp:forward and jsp:include. You can also import custom JSP tag libraries into a JSP application. You can use both the standard JSP tags and custom JSP tags in ColdFusion pages.

Standard JSP tags and ColdFusion

ColdFusion tags provide equivalent features to most standard JSP tags. For example, the cfapplet tag provides the same service as the jsp:plugin tag, and cfobject tag lets you use JavaBeans, as does the jsp:usebean tag. Similarly, you do not use the jsp:getproperty tag because ColdFusion automatically gets properties when you reference them. Therefore, ColdFusion does not support the use of standard JSP tags directly.

However, two standard JSP tags provide functionality that is useful in ColdFusion pages: the forward and include tags invoke JSP pages and Java servlets. The PageContext object described in About GetPageContext and the PageContext object section has forward and include methods that provide the same operations. For more information about using these methods, see Accessing a JSP page or servlet from a ColdFusion page.

Using custom JSP tags in a ColdFusion page

Follow these steps to use a custom JSP tag on a ColdFusion page:

Use a custom tag

  1. Place the tag library, consisting of the taglibname.jar file, and the taglibname.tld file, if one is supplied, in the web_root/WEB-INF/lib directory. The JSP custom tag library must be in this directory for you to use the cfimport tag.

  2. Restart ColdFusion.

  3. In the ColdFusion page that uses a JSP tag from the tag library, specify the tag library name in a cfimport tag; for example:

    <cfimport taglib="/WEB-INF/lib/random.jar" prefix="random">

    If the TLD file is not included in the JAR file, use the .tld extension in place of the .jar extension.

    Note: The cfimport tag must be on the page that uses the imported tag. You cannot place the cfimport tag in Application.cfm.
  4. Use the custom tag using the form prefix:tagName; for example:

    <random:number id="myNum" range="000000-999999" />
Note: You cannot use the cfsavecontent tag to suppress output of a custom JSP tag.

Example: using the random tag library

The following example uses the random tag library from the Apache Jakarta Taglibs project and calls the number tag. The number tag initializes a random number generator that uses a secure algorithm to generate a six-digit random number. You get a new random number each time you reference the variable randPass.random.

<cfimport taglib="/WEB-INF/lib/taglibs-random.jar" prefix="myrand"> 
<myrand:number id="randPass" range="000000-999999" algorithm="SHA1PRNG" provider="SUN" /> 
<cfset myPassword = randPass.random> 
<cfoutput> 
    Your password is #myPassword#<br> 
</cfoutput>

For more information on the Jakarta random tag library and how to use its tags, see the documentation at the Apache Jakarta Taglibs project website, http://jakarta.apache.org/taglibs/index.html. The Taglibs project includes many open source custom tag libraries.