Using an Expression to Set an Attribute
In all our JSP action element examples so far, the attributes are set to literal string values. But in many cases, the value of an attribute is not known when you write the JSP page; instead, the value must be calculated when the JSP page is requested. For situations like this, you can use a JSP expression as an attribute value. This is called a request-time attribute value. Here is an example of how this can be used to set an attribute of a fictitious log entry bean:
<jsp:useBean id="logEntry" class="com.foo.LogEntryBean" /> <jsp:setProperty name="logEntry" property="entryTime" value="<%= new java.util.Date( ) %>" /> ...
This bean has a property named entryTime that
holds a timestamp for a log entry, while other properties hold the
information to be logged. To set the timestamp to the time when the
JSP page is requested, a <jsp:setProperty>
action with a request-time attribute value is used.
The attribute value is represented by the same type of JSP expression
as in the previous snippet, here an expression that creates a new
java.util.Date object (representing the current
date and time). The request-time attribute is evaluated when the page
is requested, and the corresponding attribute is set to the result of
the expression. As you might have guessed, any property you set this
way must have a Java type matching the result of the expression. In
this case, the entryDate property must be of type
java.util.Date.
Not all attributes support request-time ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access