问题
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?
回答1:
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.
来源:https://stackoverflow.com/questions/2719632/which-variables-can-be-accessed-with-the-syntax-in-a-struts-tag-in-a-jsp