3

我有点沮丧,因为我找不到可以使用${...}Struts 标记中的语法访问哪些变量,放置在 JSP 页面中。

例如,我有以下代码:

<c:set target="${status.menue}" property="activeMenuePath" value="whatever" />

必须在哪里"status.menue"定义对象才能使用美元符号和大括号访问。它是在另一个 struts tile 中还是在表单中定义的?

4

1 回答 1

5

它应分别使用 、 或 放置在任何页面、请求、会话或应用JspContext#setAttribute()程序范围ServletRequest#setAttribute()内。您通常在 Servlet 中直接或间接执行此操作。MVC 框架间接地做到了这一点,通常可以通过给模型对象一个“请求”、“会话”或“应用程序”范围来进行配置。HttpSession#setAttribute()ServletContext#setAttribute()

表达式语言 (EL)将使用JspContext#findAttribute().

顺便说一下,这一切都与 Struts 无关。它只是一个建立在 JSP/Servlet API 之上的遗留 MVC 框架。<c:set>也不是Struts标记,它是JSTL标记。

于 2010-04-27T11:38:42.927 回答