我有一个父文件,其中静态包含了我的JSP。
<%@include file="test.jsp" %>
在包含的文件中,我想使用Struts2标签访问父JSP的变量。请让我知道是否有可能或应该进行动态包含。
您无法访问变量,但是可以使用OGNL从值堆栈访问变量。请参阅OGNL基础,以了解有关Struts中变量的更多信息以及如何使用它们。
自从WebWork 1.x以来,除了上面给出的示例和描述之外,EL还进行了一些重大更改。最大的问题是,属性不再使用正斜杠/而是使用点来访问.。而且,..我们现在不使用遍历堆栈的方式,而是使用[n]其中n是某个正数的方式。最后,在WebWork 1.x中,可以使用来访问特殊的命名对象(确切地说是请求范围属性)@foo,但是现在可以使用来访问特殊变量#foo。但是,必须注意,#foo它 不 访问请求属性。由于XWork并非仅针对Web构建,因此没有“请求属性”的概念,因此#foo仅是对Web中另一个对象的请求。OgnlContext 除了根。
/
.
..
[n]
@foo
#foo
OgnlContext
要动态包含JSP内容,请使用s:include标签
s:include
包括servlet的输出(servlet或JSP页面的结果)。 注意:由于将不会创建任何值堆栈,因此无法params通过<s:property...>标记在呈现的页面内访问提供给包含页面的任何其他内容。但是,您可以通过HttpServletRequest对象在Servlet中或通过scriptlet从JSP页面访问它们。 如何访问参数 参数作为请求参数传递,因此请使用${param.ParamName}表示法来访问它们。不要使用属性标记来访问包含文件中的参数。
包括servlet的输出(servlet或JSP页面的结果)。
注意:由于将不会创建任何值堆栈,因此无法params通过<s:property...>标记在呈现的页面内访问提供给包含页面的任何其他内容。但是,您可以通过HttpServletRequest对象在Servlet中或通过scriptlet从JSP页面访问它们。
params
<s:property...>
HttpServletRequest
如何访问参数
参数作为请求参数传递,因此请使用${param.ParamName}表示法来访问它们。不要使用属性标记来访问包含文件中的参数。
${param.ParamName}
<s:include value="test.jsp"/>