Download PDF Home History |  | API Search Feedback FAQ

> ## What Is a JSP Page?

> A JSP page is a text document that contains two types of text: static 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 recommended file extension for the source file of a JSP page is `.jsp`. The page can be composed of a top file that includes other files that contain either a complete JSP page or a fragment of a JSP page. The recommended extension for the source file of a fragment of a JSP page is `.jspf`.

> The JSP elements in a JSP page can be expressed in two syntaxes--standard and XML--though any given file can use only one syntax. A JSP page in XML syntax is an XML document and can be manipulated by tools and APIs for XML documents. This chapter and Chapters 14 through 16 document only the standard syntax. The XML syntax is covered in Chapter 13. 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 12-1 is a form that allows you to select a locale and displays the date in a manner appropriate to the locale.

> Figure 12-1 Localized Date Form

> The source code for this example is in the `<``INSTALL``>/j2eetutorial14/examples/web/date/` directory. The JSP page, `index.jsp`, used to create the form appears in a moment; 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 values are used to set custom tag attribute values and create dynamic content.
> - 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).

> Here is the JSP page:

>     <%@ 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``>/j2eetutorial14/examples/web/provided-wars/`. To build this example, perform the following steps:

> 1. In a terminal window, go to`<``INSTALL``>/j2eetutorial14/examples/web/date/`.
> 2. Run `asant` `build`. This target will spawn any necessary compilations and copy files to the `<``INSTALL``>/j2eetutorial14/examples/web/date/build/` directory.

> To package and deploy the example using `asant`, follow these steps:

> 1. Run `asant` `create-war`.
> 2. Start the Application Server.
> 3. Run `asant` `deploy-war`.

> To learn how to configure the example, use `deploytool` to package and deploy it:

> 1. Start the Application Server.
> 2. Start `deploytool`.
> 3. Create a Web application called `date` by running the New Web Component wizard. Select FileNewWeb Component.
> 4. In the New Web Component wizard:
> 1. Select the Create New Stand-Alone WAR Module radio button.
> 2. In the WAR Location field, enter `<``INSTALL``>/docs/tutorial/examples/web/date/date.war`.
> 3. In the WAR Name field, enter `date`.
> 4. In the Context Root field, enter `/date`.
> 5. Click Edit Contents.
> 6. In the Edit Contents dialog box, navigate to `<``INSTALL``>/j2eetutorial14/examples/web/date/build/`. Select `index.jsp`, `functions.tld`, and the `mypkg` directory and click Add, then click OK.
> 7. Click Next.
> 8. Select the No Component radio button.
> 9. Click Next.
> 10. Click Finish.
> 5. Select FileSave.
> 6. Deploy the application.
> 1. Select ToolsDeploy.
> 2. In the Connection Settings frame, enter the user name and password you specified when you installed the Application Server.
> 3. Click OK.
> 4. A pop-up dialog box will display the results of the deployment. Click Close.

> To run the example, perform these steps:

> 1. Set the character encoding in your browser to UTF-8.
> 2. 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 PDF Home History |  | API Search Feedback FAQ

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