NOTE: The <mytag attr="<%= date %>" /> is illegal in a JSP document because the < character should be used only for the start of elements (instead you should use a < entity reference). You might try:
<mytag attr="<jsp:expression>date</jsp:expression>" />
But this is illegal because elements can't be placed in attribute values. The valid alternative is therefore:
<mytag>
<jsp:attribute name="attr"><jsp:expression>date</jsp:expression></jsp:attribute>
</mytag>
The value of the name attribute in jsp:setProperty and jsp:getProperty will
refer to an object that is obtained from the pageContext object through its findAttribute
method.
The object named by the name must have been �introduced� to the JSP
processor using either the jsp:useBean action or a custom action with an
associated VariableInfo entry for this name. If the object was not introduced in this
manner, the container implementation is recommended (but not required) to raise
a translation error, since the page implementation is in violation of the
specification.
Note � A consequence of the previous paragraph is that objects that are stored
in, say, the session by a front component are not automatically visible to jsp:set-
Property and jsp:getProperty actions in that page unless a jsp:useBean action, or
some other action, makes them visible.
If the JSP processor can ascertain that there is an alternate way guaranteed to
access the same object, it can use that information. For example it may use a
scripting variable, but it must guarantee that no intervening code has invalidated
the copy held by the scripting variable. The truth is always the value held by the
pageContext object.
A non-static member classes' members can never be accessed without an instance of the enclosed non-static inner class.
So marking a variable or a method static inside a non-static innerclass would never be used unless there is an instance of the innerclass.