jsp tag files
Download
Skip this Video
Download Presentation
JSP Tag Files

Loading in 2 Seconds...

play fullscreen
1 / 17

JSP Tag Files - PowerPoint PPT Presentation


  • 135 Views
  • Uploaded on

JSP Tag Files. 4.1.0.3. 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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
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
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 …/>

<info:TagFile2>

…body content…

</info:TagFile2>

TagFile1.tag

TagFile2.tag

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

<%@taglib 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

<info:toUpper>

Uppercase this text

</info:toUpper>

    • toUpper.tag (Tag file)

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

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

<jsp:doBody/>

</p>

Body

Content

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

<info:details

dyna1="first"

loanedCopy="${item}"

dyna2="second"/>

parameter

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

<info:fragmentTest>

<jsp:attribute name="headerFragment">

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

</jsp:attribute>

<jsp:attribute name="footerFragment">

System has ${library.size} books

</jsp:attribute>

<jsp:body>

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

</jsp:body>

</info:fragmentTest>

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"

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

  • Dynamic attribute map, is defined in the tag directive

<%@tag dynamic-attributes="elements" %>

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

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

</c:forEach>

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)

<%@taglib 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

<info:fragmentTest>

<jsp:attribute name="moreContent">

Fragment 1</jsp:attribute>

<jsp:body>Body content

</jsp:body>

</info:fragmentTest>

    • fragmentTest.tag

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

<jsp:invoke fragment="moreContent" />

<jsp:doBody/>

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
checkpoint
Checkpoint
  • 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
ad