![]() |
The Java Developers Almanac 1.4Order this book from Amazon. |
e1067. Saving Data Using JSTL in a JSP PageWhen a JSP page needs to save data for its processing, it must specify a location, called the scope. See e1048 Saving Data in a JSP Page for an explanation of the four available scopes. Data is saved using a mechanism called scoped variables. A
scoped variable has a name, which is of type When using the JSTL's expression language (see
e1065 Enabling the JSTL Expression Language in a JSP Page), the variables in each
scope are made available in the implicit objects This example saves and retrieves values in scoped variables in each of the four scopes: <%-- Declare the core library --%> <%@ taglib uri="/WEB-INF/tld/c.tld" prefix="c" %> <%-- Save data in scoped variables --%> <c:set var="name1" value="value1" scope="page" /> <c:set var="com_mycompany_name2" value="value2" scope="request" /> <c:set var="com_mycompany_name3" value="value3" scope="session" /> <c:set var="com_mycompany_name4" value="value4" scope="application" /> <%-- Show the saved values --%> <c:out value='${pageScope.name1}' /> <c:out value='${requestScope.com_mycompany_name2}' /> <c:out value='${sessionScope.com_mycompany_name3}' /> <c:out value='${applicationScope.com_mycompany_name4}' />When retrieving a saved value, it is possible to omit the scope. If the scope is omitted, the variable name is automatically searched for in each of the scopes, in the order pageScope ,
requestScope , sessionScope , and applicationScope .
<%-- Show the saved values without a specific scope --%> <c:out value='${name1}' /> <c:out value='${com_mycompany_name2}' /> <c:out value='${com_mycompany_name3}' /> <c:out value='${com_mycompany_name4}' />It is also possible to specify the value to save using the contents of the body, rather than through the value attribute:
<%-- Save data using body content --%> <c:set var="name1" scope="page"> value 1 in body </c:set> <c:set var="com_mycompany_name2" scope="request" > value 2 in body </c:set> <c:set var="com_mycompany_name3" scope="session" > value 3 in body </c:set> <c:set var="com_mycompany_name4" scope="application"> value 4 in body </c:set>When specifying the value using body contents, the body contents is first trimmed of leading and trailing white space before it is saved. For example, <c:set var="name1" scope="page"> line 1 line 2 </c:set>would be saved as: "line 1\n line 2"
e1065. Enabling the JSTL Expression Language in a JSP Page e1066. Getting a Request Parameter Using JSTL in a JSP Page e1068. Saving and Emitting HTML Fragments Using JSTL in a JSP Page e1069. Conditionally Generating Output Using JSTL in a JSP Page © 2002 Addison-Wesley. |