Struts2:如何从读取参数
当我包含 JSP 时,通过
并指定参数 - 它们可以通过 EL ${param.XXX}
完全访问,但不能通过 OGNL %{#parameters.XXX}
。
例如:
<jsp:include page="fragment.jsp">
<jsp:param value="foo" name="bar" />
</jsp:include>
在fragment.jsp中
value of foo in EL : ${param.bar}
value of foo in OGNL : <s:property value="%{#parameters.bar}" />
为什么???我应该在 Struts Tags 中使用什么?
注意:使用
而不是
时,即使使用 EL 也无法访问该参数。
When I include a JSP, either by <jsp:include />
and specify parameters - they are perfectly accessible by EL ${param.XXX}
but not by OGNL %{#parameters.XXX}
.
For example:
<jsp:include page="fragment.jsp">
<jsp:param value="foo" name="bar" />
</jsp:include>
and in fragment.jsp
value of foo in EL : ${param.bar}
value of foo in OGNL : <s:property value="%{#parameters.bar}" />
WHY ??? What should I use instead in Struts Tags ?
Note: with <s:include/>
instead of <jsp:include/>
, the parameter is not accessible even with EL.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这就是我解决问题的方法:
在包含页面中:
在/WEB-INF/page/whatever.jsp中:
我希望它对您有用!
This is what I do to solve the problem:
In including page:
In /WEB-INF/page/whatever.jsp:
I hope it works for you!
我最近遇到了这个问题。我发现原因是
中的参数没有存储在ActionContext
的request.parameters
对象中,而是存储在在JSP页面的HttpServletRequest
中。所以参数可以通过EL(${param.xxx})
或<% request.getParameters("xxxx") %>
来获取,但是我们可以' t 让它通过(struts)ongl。因为参数不在ActionContext
中。如果你坚持使用ongl,可以通过jsp
<% %>
或者EL将参数添加到ActionContext
中,然后通过ongl获取参数。I encountered this problem recently. I found the reason is that the parameters in
<s:include>
is not stored in therequest.parameters
object ofActionContext
, but stored inHttpServletRequest
of JSP page. So the parameters can be obtained throughEL(${param.xxx})
or<% request.getParameters("xxxx") %>
, but we can't get it through (struts) ongl. Because the parameters are not in theActionContext
.If you insist on using the ongl, you can add the parameters into
ActionContext
through jsp<% %>
or EL and then you can obtain the parameters through ongl.http://prodia.co.uk/blog/doahh/entry/struts2_s_include_and_passing
http://prodia.co.uk/blog/doahh/entry/struts2_s_include_and_passing
尝试以下操作。
Try the following.