I'm getting a little bit frustrated since I can't find out which variables I can access with the ${...}
syntax in a Struts tag, placed in a JSP page.
As an example I've got the following code:
<c:set target="${status.menue}" property="activeMenuePath" value="whatever" />
Where does the object "status.menue"
have to be defined in order to can be accessed with a dollar sign and braces. Is it defined in another struts tile or in the form?
It should be placed in any of the page, request, session or application scopes using respectively JspContext#setAttribute()
, ServletRequest#setAttribute()
, HttpSession#setAttribute()
or ServletContext#setAttribute()
. You normally do that either directly or indirectly inside a Servlet. MVC frameworks do that indirectly, usually configureable by giving the model object a "request", "session" or "application" scope.
The Expression Language (EL) will access them using JspContext#findAttribute()
.
This all is by the way unrelated to Struts. It's just a legacy MVC framework which is built on top of the JSP/Servlet API. The <c:set>
is not a Struts tag as well, it's a JSTL tag.