Document Information


Part I Introduction

1.  Overview

2.  Using the Tutorial Examples

Part II The Web Tier

3.  Getting Started with Web Applications

4.  Java Servlet Technology

5.  JavaServer Pages Technology

6.  JavaServer Pages Documents

7.  JavaServer Pages Standard Tag Library

The Example JSP Pages

Using JSTL

Tag Collaboration

Core Tag Library

Variable Support Tags

Flow Control Tags in the Core Tag Library

Conditional Tags

Iterator Tags

URL Tags

Miscellaneous Tags

XML Tag Library

Core Tags

XML Flow Control Tags

Transformation Tags

Internationalization Tag Library

Setting the Locale

Messaging Tags

The setBundle and bundle Tags

The message Tag

Formatting Tags

SQL Tag Library

query Tag Result Interface

Further Information about JSTL

8.  Custom Tags in JSP Pages

9.  Scripting in JSP Pages

10.  JavaServer Faces Technology

11.  Using JavaServer Faces Technology in JSP Pages

12.  Developing with JavaServer Faces Technology

13.  Creating Custom UI Components

14.  Configuring JavaServer Faces Applications

15.  Internationalizing and Localizing Web Applications

Part III Web Services

16.  Building Web Services with JAX-WS

17.  Binding between XML Schema and Java Classes

18.  Streaming API for XML

19.  SOAP with Attachments API for Java

Part IV Enterprise Beans

20.  Enterprise Beans

21.  Getting Started with Enterprise Beans

22.  Session Bean Examples

23.  A Message-Driven Bean Example

Part V Persistence

24.  Introduction to the Java Persistence API

25.  Persistence in the Web Tier

26.  Persistence in the EJB Tier

27.  The Java Persistence Query Language

Part VI Services

28.  Introduction to Security in the Java EE Platform

29.  Securing Java EE Applications

30.  Securing Web Applications

31.  The Java Message Service API

32.  Java EE Examples Using the JMS API

33.  Transactions

34.  Resource Connections

35.  Connector Architecture

Part VII Case Studies

36.  The Coffee Break Application

37.  The Duke's Bank Application

Part VIII Appendixes

A.  Java Encoding Schemes

B.  About the Authors



JSTL Functions

Table 7-8 lists the JSTL functions.

Table 7-8 Functions






Collection length



String manipulation

toUpperCase, toLowerCase

substring, substringAfter, substringBefore



indexOf, startsWith, endsWith, contains, containsIgnoreCase

split, join


Although the java.util.Collection interface defines a size method, it does not conform to the JavaBeans component design pattern for properties and so cannot be accessed by using the JSP expression language. The length function can be applied to any collection supported by the c:forEach and returns the length of the collection. When applied to a String, it returns the number of characters in the string.

For example, the index.jsp page of the hello1 application introduced in Chapter 3, Getting Started with Web Applications uses the fn:length function and the c:if tag to determine whether to include a response page:

<%@ taglib uri=""
     prefix="c" %>
<%@ taglib uri=""
    prefix="fn" %>
<input type="text" name="username" size="25">
<input type="submit" value="Submit">
<input type="reset" value="Reset">

<c:if test="${fn:length(param.username) > 0}" >
  <%@include file="response.jsp" %>

The rest of the JSTL functions are concerned with string manipulation:

  • toUpperCase, toLowerCase: Changes the capitalization of a string

  • substring, substringBefore, substringAfter: Gets a subset of a string

  • trim: Trims white space from a string

  • replace: Replaces characters in a string

  • indexOf, startsWith, endsWith, contains, containsIgnoreCase: Checks whether a string contains another string

  • split: Splits a string into an array

  • join: Joins a collection into a string

  • escapeXml: Escapes XML characters in a string