Saving Data Using JSTL in a JSP Page
When a JSP page needs to save data for its processing, it must
specify a location, called the scope. See
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 String and a value,
which is of type Object. For non-page scoped variables, it is
recommended that the name use the reverse domain name convention
(e.g., prefixed with com_mycompany) to minimize unexpected collisions
when integrating with third party modules.
When using the JSTL's expression language (see
Enabling the JSTL Expression Language in a JSP Page), the variables in each
scope are made available in the implicit objects pageScope,
requestScope, sessionScope, and applicationScope.
This example saves and retrieves values in scoped variables in
each of the four scopes:
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.
It is also possible to specify the value to save using the contents
of the body, rather than through the value attribute:
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,
would be saved as:
<%-- 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}' />
<%-- 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}' />
<%-- 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>
<c:set var="name1" scope="page">
line 1
line 2
</c:set>
"line 1\n line 2"
It would be nice if you can add how the output looks like.
Although thanks!