0% found this document useful (0 votes)
64 views

JSTL Core Tags: Celsina Bignoli

JSTL is a collection of custom actions (tags) made available in a JSP page standardized to be portable between different JSP containers. Tags make it possible to write JSP pages without the use of scripting elements (embedded java fragments)

Uploaded by

GURUMS
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
64 views

JSTL Core Tags: Celsina Bignoli

JSTL is a collection of custom actions (tags) made available in a JSP page standardized to be portable between different JSP containers. Tags make it possible to write JSP pages without the use of scripting elements (embedded java fragments)

Uploaded by

GURUMS
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 22

JSTL

Core Tags

Celsina Bignoli
[email protected]
What is a Custom Tag Library?

• collection of custom actions (tags) made available


in a JSP page
• standardized to be portable between different JSP
containers
• make it possible to write JSP pages without the
use of scripting elements (embedded java
fragments of code)
– code is easier to maintain
– logic is separated from presentation
– web designer role separated from java developer
What is JSTL

• Created by the Java Community Process as the


JSP specification itself
• vendors can offer versions of the JSTL optimized
for their container
• Includes:
• Core
– looping, importing data from external sources etc…
• XML processing
• Internationalization
– format and parse localized information
• Relational Database Access
• Functions
Installing Custom Tag Libraries

• To install a custom tag library, place the


corresponding JAR file in the WEB-INF/lib
directory of your application
• Example:
petstore
WEB-INF
lib
jstl.jar
Declaring a Custom Tag Library

which elements are part of a custom tag library

<%@taglib prefix=“c”
uri=“http://java.sun.com/jsp/jstl/core” %>

where to find the Java class or tag file that


implements the custom action
Declaring a Custom Tag Library

• A URI is a string that tells the container how to


locate the TLD file for the library, where it finds the
tag file name or java class for all actions in the
library
• when the web server is started
– it locates all TLD files,
– for each of them gets the default URI
– create a mapping between the URI and the TLD
• a default URI mast be a globally unique string
JSTL URIs and Default Prefixes

Library URI Prefix


Core http://java.sun.com/jsp/jstl/core c
XML Processing http://java.sun.com/jsp/jstl/xml x
Formatting http://java.sun.com/jsp/jstl/fmt fmt
Database Access http://java.sun.com/jsp/jstl/sql sql
Functions http://java.sun.com/jsp/jstl/functions fn
Using Actions from a Tag Library

• The syntax:
<prefix:action-name attr1=“value1”
attr2=“value2”>
action_body
</prefix:action-name>
• or (with no body)
<prefix: action-name attr1=“value1”
attr2=“value2” />
The Standard Tag Library Core

• actions for control-flow


• URL manipulation
• importing resources
• general-purpose tasks
Core Library Tags - Listing

<c:catch> <c:out>
<c:choose> <c:param>
<c:forEach> <c:redirect>
<c:forTokens> <c:remove>
<c:if> <c:set>
<c:import> <c:url>
<c:otherwise> <c:when>
<c:catch>

• catches an exception thrown by JSP


elements in its body
• the exception can optionally be saved as a
page scope variable
• Syntax:
<c:catch>
JSP elements
</c:catch>
<c:choose>

• only the first <c:when> action that evaluates


to true is processed
• if no <c:when> evaluates to true
<c:otherwise> is processed, if exists
• Syntax:
<c:choose>
1 or more <c:when> tags and optionally a
<c:otherwise> tag
</c:choose>
<c:forEach>

• evaluates its body once for each element in a collection


– java.util.Collection
– java.util.Iterator
– java.util.Enumeration
– java.util.Map
– array of Objects or primitive types
• Syntax:
<c:forEach items=“collection” [var=“var”]
[varStatus=“varStatus”] [begin=“startIndex”]
[end=“endIndex”] [step=“increment”]>
JSP elements
</c:forEach>
<c:forTokens>

• evaluates its body once for each token n a string


delimited by one of the delimiter characters
• Syntax:
<c:forTokens items=“stringOfTokens”
delims=“delimiters” [var=“var”]
[varStatus=“varStatus”]
[begin=“startIndex”] [end=“endIndex”]
[step=“increment”]>
JSP elements
</c:forTokens>
<c:if>

• evaluates its body only if the specified expression


is true
• Syntax1:
<c:if test=“booleanExpression” var=“var”
[scope=“page|request|session|
application”] />
• Syntax2:
<c:if test=“booleanExpression” >
JSP elements
</c:if>
<c:import>

• imports the content of an internal or external resource


• like <jsp:include> for internal resources
• however, allows the import of external resources as well
(from a different application OR different web container)
• Syntax:
<c:import url=“url” [context=“externalContext”]
[var=“var”] [scope=“page|request|session|
application”] [charEncoding=“charEncoding”]>
Optional <c:param> actions
</c:import>
<c:param>

• nested action in <c:import> <c:redirect>


<c:url> to add a request parameter
• Syntax 1:
<c:param name=“parameterName”
value=“parameterValue” />
• Syntax 2:
<c:param name=“parameterName”>
parameterValue
</c:param>
<c:out>

• adds the value of the evaluated expression to the


response buffer
• Syntax 1:
<c:out value=“expression” [excapeXml=“true|
false”] [default=“defaultExpression”] />
• Syntax 2:
<c:out value=“expression” [excapeXml=“true|
false”]>
defaultExpression
</c:out>
<c:redirect>

• sends a redirect response to a client telling it to


make a new request for the specified resource
• Syntax 1:
<c:redirect url=“url”
[context=“externalContextPath”] />
• Syntax 2:
<c:redirect url=“url”
[context=“externalContextPath”] >
<c:param> tags
</c:redirect>
<c:remove>

• removes a scoped variable


• if no scope is specified the variable is
removed from the first scope it is specified
• does nothing if the variable is not found
• Syntax 1:
<c:remove var=“var” [scope=“page|request|session|
application”] />
<c:set>

• sets a scoped variable or a property of a target


object to the value of a given expression
• The target object must be of type java.util.Map or
a Java Bean with a matching setter method
• Syntax 1:
<c:set value=“expression” target=“beanOrMap”
property=“propertyName” />

• Syntax 2:
<c:set value=“expression” var=“var” scope=“page|
request|session|application” />
<c:url>

• applies encoding and conversion rules for a relative or


absolute URL
• Rules:
– URL encoding of parameters specified in <c:param> tags
– context-relative path to server-relative path
– add session Id path parameter for context- or page-relative path
• Syntax:
<c:url url=“url” [context=“externalContextPath”]
[var=“var”] scope=“page|request|session|
application” >
<c:param> actions
</c:url>

You might also like