Jsp tag files
1 / 17

JSP Tag Files - PowerPoint PPT Presentation

  • Uploaded on

JSP Tag Files. Unit objectives. After completing this unit, you should be able to: Describe the use of JSP tag files Call a tag file from a JSP Pass body content, parameters and fragments to a tag file Create a tag file and use the tag file directives Package a tag file.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about ' JSP Tag Files' - viveka

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Jsp tag files

JSP Tag Files

Unit objectives
Unit objectives

After completing this unit, you should be able to:

  • Describe the use of JSP tag files

  • Call a tag file from a JSP

  • Pass body content, parameters and fragments to a tag file

  • Create a tag file and use the tag file directives

  • Package a tag file

Overview of tag files
Overview of Tag Files

  • Another way to build custom actions

    • Tag files are JSPs with .tag or .tagx extensions

  • Allows non-Java developers to create reusable custom actions

  • Are automatically interpreted by the JSP container when placed in the /WEB-INF/tags folder

    • Custom action name is the same as the tag file name

    • Can be further organized in sub-folders of /WEB-INF/tags

  • Tag files are separate files that are called from JSPs

Caller JSP

<info:TagFile1 …/>


…body content…




Calling a tag file from a jsp
Calling a Tag File from a JSP

  • Resembles the invocation of a custom action

    • Tag files are automatically compiled into SimpleTags

  • More powerful than a <jsp:include> that can only accept string parameters in the request

  • The tag file has access to implicit objects

  • The tag file can be passed

    • Body content: content in between the begin and end tag

    • Parameters

    • Fragments: individually named body content

  • For example to call details.tag from a caller JSP

    <[email protected] tagdir="/WEB-INF/tags" prefix="info" %>

    <info:details loanedCopy="${item}"/>

Body content from caller jsp
Body Content from Caller JSP

  • Body Content can be: scriptless, tagdependent or empty

  • Tag files can use <jsp:doBody/> to use the body content

    • Caller JSP


      Uppercase this text


    • toUpper.tag (Tag file)

      <%@ tag body-content="scriptless"%>

      <p style="text-transform:uppercase">





Parameters from caller jsp
Parameters from Caller JSP

  • Passed as attributes to the tag file

    • Matches an attribute, with the same name, in the tag file

      <info:details loanedCopy="${item}"/>

  • Can be a dynamic list of attributes

    • Handled in the tag file by a Map, thus order is not guaranteed

    • Can be mixed with defined attributes






defined parameter

mixed in with 2

dynamic parameters

Fragments from caller jsp
Fragments from Caller JSP

  • Enable the calling page to pass in named fragments of body content

  • <jsp:body> is used to define the main body content


    <jsp:attribute name="headerFragment">

    <h1>Welcome to the IBM Library System </h1>


    <jsp:attribute name="footerFragment">

    System has ${library.size} books



    ${item.title} ${item.author}



Tag directive in tag file
Tag Directive in Tag File

  • Attribute list for the directive

    • display-name

    • body-content: empty, scriptless or tagdependent

    • dynamic-attributes: name of the attribute map

    • small-icon

    • large-icon

    • description

    • example

    • language: scripting language

    • import: list of imports

    • pageEncoding

    • isELIgnored: true of false

  • For example

    <%@ tag body-content="empty"%>

Attribute directive in tag file
Attribute Directive in Tag File

  • Maps incoming parameters to variables

  • Attribute list for the directive

    • name

    • required: true or false

    • fragment: true or false

    • rtexprvalue: true or false

    • type: type of the attribute

    • description

  • For example

    <%@ attribute name="loanedCopy" required="true"


  • Dynamic attribute map, is defined in the tag directive

    <[email protected] dynamic-attributes="elements" %>

    <c:forEach var="element" items="${elements}" >

    ${element.key} : ${element.value}


Variable directive in tag file
Variable Directive in Tag File

  • Exposes variables to the calling page

  • A name can be given to the attribute or can be assigned from an attribute

    • if assigned from an attribute an alias needs to be defined to reference the attribute within the tag file

  • Attribute list for the directive

    • name-given or name-from attribute, with an alias

    • variable-class

    • scope: AT_BEGIN, AT_END or NESTED

    • description

  • For example

    • <%@ variable name-given="returnValue" scope="AT_BEGIN" %>

    • <c:set var="returnValue" value="5% interest"/>

Implicit objects available in a tag file
Implicit Objects Available in a Tag File

  • Collection of objects available to the tag file

    • request: ServletRequest or HttpServletRequest

    • response: ServletResponse or HttpServletResponse

    • jspContext: JspContext for this tag file

    • session: HttpSession

    • application: ServletContext

    • out: JspWriter

    • config: ServletConfig

Example of calling a tag file
Example of Calling a Tag File

  • Tag invocation in ListItems.jsp (Caller JSP)

    <[email protected] tagdir="/WEB-INF/tags" prefix="info" %>

    <info:details loanedCopy="${item}"/>

  • Tag definition in details.tag (Tag file)

    <%@ tag body-content="empty"%>

    <%@ attribute name="loanedCopy" required="true"

    type="com.ibm.library.model.LoanedCopy"" %>

    <h1>Times Renewed = ${loanedCopy.timesRenewed} </h1>

Tag file with body content and a fragment
Tag File with Body Content and a Fragment

  • Tag files can be passed fragments and evaluate the separately, using <jsp:invoke fragment="fragmentName"/>

    • Calling JSP


      <jsp:attribute name="moreContent">

      Fragment 1</jsp:attribute>

      <jsp:body>Body content



    • fragmentTest.tag

      <%@ attribute name="moreContent" fragment="true"%>

      <jsp:invoke fragment="moreContent" />


Tag file packaging
Tag File Packaging

  • A tag file is recognized by the container if placed in /WEB-INF/tags/ folder

    • Tag file does not need TLD

  • At tag file placed in the /META-INF/tags folder of a JAR file requires a TLD

    • The JAR file is placed in the /WEB-INF/lib folder

  • Tags can also be packaged as compiled Java classes


  • Where can a tag file need to be placed to be automatically picked up by the JSP container?

  • Why use a tag file instead of writing a custom tag handler?

Checkpoint solutions
Checkpoint solutions

  • /WEB-INF/tags

  • Allows non-Java developers to create reusable custom actions. Also externalizes any HTML and layout information that may creep into a tag handler class.

Unit summary
Unit summary

Having completed this unit, you should be able to:

  • Describe the advantages of using JSP custom tags

  • List the major steps in developing and using JSP custom tags

  • Develop basic tag handler classes to implement JSP custom tags

  • Create and modify taglib descriptor files

  • Package JSP taglib implementation classes and taglib descriptor files

  • Understand the uses of the JSTL

  • Name some of the tags included in the JSTL and their purposes

  • Create and call a tag file from a JSP