2015-05-19 46 views
0

我包括使用S JSP页面:包括标签:的Struts 2页包含Access请求对象属性从属性标记

<s:include value="/WEB-INF/jsp/centers/tpa/admin/users/UserEmployerAccessRow.jsp" /> 

我有,我想提供给这包括几个对象,我试图在包含发生之前将它们存储到请求中。我正在使用s:set标记存储到请求对象:

<s:set var="employer_tmp" value="employer" scope="request" /> 

jsp中的所有内容均按预期工作到此时为止。包含的jsp无法访问来自s:property标签的请求中的对象。以下是我有UserEmployerAccessRow.jsp内:

<s:property value="#request[employer_tmp]" /> 

我也试着这样说:

<s:property value="#employer_tmp" /> 

我已验证的对象是在通过这样的要求:

<% out.println(request.getAttribute("employer_tmp")); %> 

我的猜测是s:属性正在寻找Struts为请求设置的内部映射,而不是查看实际的请求对象。有没有人知道任何标记来强制s:property从请求对象中获取某些内容?看起来像是矫枉过正必须在循环中运行另一个动作,我已经包含了这个动作。我不能使用s:param将参数传递给包含,因为它只处理简单的http参数而不处理对象。预先感谢您提供的任何方向!

回答

0

我最终发现了问题。属性名称需要在s:property标记中引用:

<s:property value="#request['employer_tmp']" /> 
+1

或者,您可以使用'#request.employer_tmp',这也起作用 –