User Guide Cancel

cfimport

 

Description

You can use the cfimport tag to import either of the following:

  • All ColdFusion pages in a directory, as a tag custom tag library.
  • A Java Server Page (JSP) tag library. A JSP tag library is a packaged set of tag handlers that conform to the JSP 1.1 tag extension API.
  • Using cfscript, you can use the import statement, as shown below:
import path.to.SomeComponent
component {
function f() {
myObject = new SomeComponent()
}
}
import path.to.SomeComponent component { function f() { myObject = new SomeComponent() } }
import path.to.SomeComponent

component {
    function f() {
    myObject = new SomeComponent()
    }
}

Category

Syntax

<cfimport
path = "the CFC namespace to import"
prefix = "custom"
taglib = "tag library location">
<cfimport path = "the CFC namespace to import" prefix = "custom" taglib = "tag library location">
<cfimport  
path = "the CFC namespace to import"
prefix = "custom" 
taglib = "tag library location">

See also

History

ColdFusion 9: Added the path attribute.

ColdFusion MX: Added this tag.

Attributes

Attribute

Req/Opt

Default

Description

taglib

Required

 

Tag library URI. The path must be relative to the web root (and start with /), the current page location, or a directory specified in the Administrator ColdFusion mappings page.

  • A directory in which custom ColdFusion tags are stored. In this case, all the cfm pages in this directory are treated as custom tags in a tag library.
  • A path to a JAR in a web-application, for example, "/WEB-INF/lib/sometags.jar"
  • A path to a tag library descriptor, for example, "/sometags.tld"
    Note: You must put JSP custom tag libraries in the /WEB-INF/lib directory. This limitation does not apply to ColdFusion pages.

prefix

Required

 

Prefix by which to access the imported custom CFML tags JSP tags. If you import a CFML custom tag directory and specify an empty value, "", for this attribute, you can call the custom tags without using a prefix. Specify and use a prefix for a JSP tag library.

path Optional   Use this attribute to import a CFC namespace.

Usage

The following example imports the tags from the directory myCustomTags:

<cfimport
prefix="mytags"
taglib="myCustomTags">
<cfimport
path="cfc.conf.abc">
<cfimport
path="cfc.system.*">
<cfimport prefix="mytags" taglib="myCustomTags"> <cfimport path="cfc.conf.abc"> <cfimport path="cfc.system.*">
<cfimport 
prefix="mytags" 
taglib="myCustomTags">

 
<cfimport
path="cfc.conf.abc">

<cfimport
path="cfc.system.*">

You can import multiple tag libraries using one prefix. If there are duplicate tags in a library, the first one takes precedence.JSP tags have fixed attributes; however, if the tag supports runtime attribute expressions, most tag libraries support the use of the syntax #expressions#. To reference a JSP tag in a CFML page, use the syntax <prefix:tagname>. Set the prefix value in the prefix attribute.

Use JSP custom tags in a ColdFusion page

  1. Put a JSP tag library JAR file (for example, myjsptags.jar) into the ColdFusion server directory wwwroot/WEB-INF/lib. If the tag library has a separate TLD file, put it in the same directory as the JAR file.
  2. At the top of a CFML page, insert code such as the following:

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

To reference a JSP tag from a JAR file, use the following syntax:

<cfoutput>
<mytags:helloTag message="#mymessage#" />
<cfoutput>
<cfoutput> <mytags:helloTag message="#mymessage#" /> <cfoutput>
<cfoutput> 
<mytags:helloTag message="#mymessage#" /> 
<cfoutput>

The cfimport tag must be on the page that uses the imported tags. For example, if you use a cfimport tag on a page that you include with the cfinclude call, you cannot use the imported tags on the page that has the cfinclude tag. Similarly, if you have a cfimport tag on your Application.cfm page, the imported tags are available on the Application.cfm page only, not on the other pages in the application. ColdFusion does not throw an error in these situations, but the imported tags do not run. You cannot use the cfimport tag to suppress output from a tag library.
For more information, see the Java Server Page 1.1 specification.

Example

<h3>cfimport example</h3>
<p>This example uses the random JSP tag library that is available from the
Jakarta Taglibs project, at http://jakarta.apache.org/taglibs/</p>
<cfimport taglib="/WEB-INF/lib/taglibs-random.jar" prefix="randomnum">
<randomnum:number id="randPass" range="000000-999999" algorithm="SHA1PRNG" provider="SUN"/>
<cfset myPassword = randPass.random>
<cfoutput>
Your password is #myPassword#<br>
</cfoutput>
<h3>cfimport example</h3> <p>This example uses the random JSP tag library that is available from the Jakarta Taglibs project, at http://jakarta.apache.org/taglibs/</p> <cfimport taglib="/WEB-INF/lib/taglibs-random.jar" prefix="randomnum"> <randomnum:number id="randPass" range="000000-999999" algorithm="SHA1PRNG" provider="SUN"/> <cfset myPassword = randPass.random> <cfoutput> Your password is #myPassword#<br> </cfoutput>
<h3>cfimport example</h3> 
<p>This example uses the random JSP tag library that is available from the 
Jakarta Taglibs project, at http://jakarta.apache.org/taglibs/</p> 

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

<randomnum:number id="randPass" range="000000-999999" algorithm="SHA1PRNG" provider="SUN"/> 
<cfset myPassword = randPass.random> 
<cfoutput> 
Your password is #myPassword#<br> 
</cfoutput>

You can also instantiate a component using the new operator:

<cfset a = new abc()>
<cfset a = new abc()>
<cfset a = new abc()>

Get help faster and easier

New user?