Jsp tag files
This presentation is the property of its rightful owner.
Sponsored Links
1 / 17

JSP Tag Files PowerPoint PPT Presentation


  • 98 Views
  • Uploaded on
  • Presentation posted in: General

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.

Download Presentation

JSP Tag Files

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

4.1.0.3


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

    <[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

      <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

    <[email protected] 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)

    <[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

      <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


  • Login