我使用s:include标签包含JSP页面:
<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:属性从请求对象中获取某些内容?在循环中运行另一个动作似乎有点过分了。我不能使用s:param将参数传递给include,因为它只处理简单的http参数而不是对象。提前感谢您提供的任何方向!
答案 0 :(得分:0)
我最终找到了问题。属性名称需要在s:property标记中引用:
<s:property value="#request['employer_tmp']" />