Search code examples
jspjstlel

Which variables can be accessed with the ${...} syntax in a JSTL tag in a JSP page?


I'm getting a little bit frustrated since I can't find out which variables I can access with the ${...} syntax in a JSTL 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?


Solution

  • 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().