Which variables can be accessed with the ${…} synt

2019-02-25 07:07发布

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条回答
Emotional °昔
2楼-- · 2019-02-25 08:00

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.

查看更多
登录 后发表回答