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 Chapter 7,
“JavaServer Pages Standard Tag Library,” through Chapter 9, “Scripting in JSP Pages,”
document only the standard syntax. The XML syntax is covered in Chapter 6, “JavaServer Pages
Documents.”
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 Chapter 7,
“JavaServer Pages Standard Tag Library,” through Chapter 9, “Scripting in JSP Pages,”
document only the standard syntax. The XML syntax is covered in Chapter 6, “JavaServer Pages
Documents.”
The source code for this example is in the tut-install/javaeetutorial5/examples/web/date/
directory. The JSP page, index.jsp, 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 is a standard element that 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 (see Chapter 8, “Custom Tags in JSP Pages”) 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 is another standard element that sets the value of an object property.
■ A function (f:equals) tests the equality of an attribute and the current item of a collection.
(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/cor"
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>
directory. The JSP page, index.jsp, 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 is a standard element that 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 (see Chapter 8, “Custom Tags in JSP Pages”) 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 is another standard element that sets the value of an object property.
■ A function (f:equals) tests the equality of an attribute and the current item of a collection.
(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/cor"
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>
To deploy the date application withNetBeans IDE, follow these steps:
1. Start the Application Server.
2. InNetBeans IDE, select File→Open Project.
3. In the Open Project dialog, navigate to:
tut-install/javaeetutorial5/examples/web/
4. Select the date folder.
5. Select the Open asMain Project check box.
6. Click Open Project.
7. In the Projects tab, right-click the date project, and select Undeploy andDeploy.
To deploy the date application with the Ant tool, follow these steps:
1. In a terminal window, go to tut-install/javaeetutorial5/examples/web/date/.
2. Type ant. This command will spawn any necessary compilations, copy files to the
tut-install/javaeetutorial5/examples/web/date/build/ directory, and create aWAR
file.
3. Start the Application Server.
4. Type ant deploy.
To run the example, do the following:
1. Set the character encoding in your browser to UTF-8.
2. Open your browser to http://localhost:8080/date.
3. You will see a combo box whose entries are locales. Select a locale and click GetDate. You
will see the date expressed in a manner appropriate for that locale.
Some of the characters might not display properly if you don’t have the appropriate language
files installed on your machine. Consult the user guide or online help for your operating system
to determine how you can install these language files.
1. Start the Application Server.
2. InNetBeans IDE, select File→Open Project.
3. In the Open Project dialog, navigate to:
tut-install/javaeetutorial5/examples/web/
4. Select the date folder.
5. Select the Open asMain Project check box.
6. Click Open Project.
7. In the Projects tab, right-click the date project, and select Undeploy andDeploy.
To deploy the date application with the Ant tool, follow these steps:
1. In a terminal window, go to tut-install/javaeetutorial5/examples/web/date/.
2. Type ant. This command will spawn any necessary compilations, copy files to the
tut-install/javaeetutorial5/examples/web/date/build/ directory, and create aWAR
file.
3. Start the Application Server.
4. Type ant deploy.
To run the example, do the following:
1. Set the character encoding in your browser to UTF-8.
2. Open your browser to http://localhost:8080/date.
3. You will see a combo box whose entries are locales. Select a locale and click GetDate. You
will see the date expressed in a manner appropriate for that locale.
Some of the characters might not display properly if you don’t have the appropriate language
files installed on your machine. Consult the user guide or online help for your operating system
to determine how you can install these language files.
No comments:
Post a Comment