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