Download FAQ History |  | API Search Feedback

> ## What Is a JSP Page?

> A JSP page is a text document that contains two types of text: static template data, which can be expressed in any text-based format, such as HTML, SVG, WML, and XML, and JSP elements, which construct dynamic content.

> The JSP elements in a JSP page can be expressed in two syntaxes: standard and XML, though an individual page can only use one syntax. A JSP page in XML syntax is an XML document and can be manipulated by tools and APIs for XML documents. The chapters in this tutorial that cover JSP technology currently document only the standard syntax. The XML syntax will be addressed in a future release of the tutorial. A syntax card and reference that summarizes both syntaxes is available at

>     http://java.sun.com/products/jsp/docs.html#syntax

> ### Example

> The Web page in Figure 16-1 is a form that allows you to select a locale and displays the date in a manner appropriate to the locale.

> Figure 16-1 Localized Date Form

> The source code for this example is in the `<``INSTALL``>/jwstutorial12/examples/web/date/` directory. The JSP page, `index.jsp`, used to create the form appears below; it is a typical mixture of static HTML markup and JSP elements. If you have developed Web pages, you are probably familiar with the HTML document structure statements (`<head>`, `<body>`, and so on) and the HTML statements that create a form (`<form>)` and a menu (`<select>)`.

> The lines in bold in the example code contain the following types of JSP constructs:

> - A page directive (`<%@page ... %>`) sets the content type returned by the page.
> - Tag library directives (`<%@taglib ... %>`) import custom tag libraries.
> - `jsp:useBean` creates an object containing a collection of locales and initializes an identifier that points to that object.
> - JSP expression language expressions (`${ }`) retrieve the value of object properties. The value of an are used to set tag attribute values.
> - Custom tags set a variable (`c:set`), iterate over a collection of locale names (`c:forEach)`, and conditionally insert HTML text into the response (`c:if`, `c:choose`, `c:when`, `c:otherwise`).
> - `jsp:setProperty` sets the value of an object property.
> - A function (`f:equals`) tests the equality of an attribute and the current item of a collection. (Note: a built-in `==` operator is usually used to test equality).

>     <%@ page contentType="text/html; charset=UTF-8" %>
>     <%@ taglib uri="http://java.sun.com/jsp/jstl/core"
>         prefix="c" %>
>     <%@ taglib uri="/functions" prefix="f" %>
>     <html>
>     <head><title>Localized Dates</title></head>
>     <body bgcolor="white">
>     <jsp:useBean id="locales" scope="application"
>       class="mypkg.MyLocales"/>

>     <form name="localeForm" action="index.jsp" method="post">
>     <c:set var="selectedLocaleString" value="${param.locale}" />
>     <c:set var="selectedFlag"
>       value="${!empty selectedLocaleString}" />
>     <b>Locale:</b>
>     <select name=locale>
>     <c:forEach var="localeString" items="${locales.localeNames}" >
>     <c:choose>
>       <c:when test="${selectedFlag}">
>         <c:choose>
>           <c:when
>             test="${f:equals(selectedLocaleString,
>               localeString)}" >
>             <option selected>${localeString}</option>
>           </c:when>
>           <c:otherwise>
>             <option>${localeString}</option>
>           </c:otherwise>
>         </c:choose>
>       </c:when>
>       <c:otherwise>
>         <option>${localeString}</option>
>       </c:otherwise>
>     </c:choose>
>     </c:forEach>
>     </select>
>     <input type="submit" name="Submit" value="Get Date">
>     </form>

>     <c:if test="${selectedFlag}" >
>       <jsp:setProperty name="locales"
>         property="selectedLocaleString"
>         value="${selectedLocaleString}" />
>       <jsp:useBean id="date" class="mypkg.MyDate"/>
>       <jsp:setProperty name="date" property="locale"
>         value="${locales.selectedLocale}"/>
>       <b>Date: </b>${date.date}
>     </c:if>
>     </body>
>     </html>

> A sample `date.war` is provided in `<``INSTALL``>/jwstutorial12/examples/web/provided-wars/`. To build, package, deploy, and execute this example:

> 1. In a terminal window, go to`<``INSTALL``>/jwstutorial12/examples/web/date/`.
> 2. Run `ant` `build`. This target will spawn any necessary compilations and copy files to the `<``INSTALL``>/jwstutorial12/examples/web/date/build/` directory.
> 3. Start Tomcat.
> 4. Run `ant` `install`. The `install` target notifies Tomcat that the new context is available.
> 5. Set the character encoding in your browser to UTF-8.
> 6. Open the URL `http://localhost:8080/date` in a browser.

> You will see a combo box whose entries are locales. Select a locale and click Get Date. You will see the date expressed in a manner appropriate for that locale.

Download FAQ History |  | API Search Feedback

All of the material in The Java(TM) Web Services Tutorial is copyright-protected and may not be published in other works without express written permission from Sun Microsystems.