东东东 陈煜东的博客

获取struts2 include标签param参数

struts 2的标签中,有个<s:include>标签,这个标签能将其他页面给包含到本页面。使用这个语法,能将网页给模块化了。不用写一个长长的页面,将相同的部分给抽取出来,从而复用代码。

同时,我们也可以向要include进来的页面传入参数。在被include的页面中,我们可以读取。

向include传入参数

<s:include value="myJsp.jsp" />
<s:include value="myJsp.jsp">
   <s:param name="param1" value="value2" />
   <s:param name="param2" value="value2" />
</s:include>
<s:include value="myJsp.jsp">
   <s:param name="param1">value1</s:param>
   <s:param name="param2">value2</s:param>
</s:include>

取参数方法一:${param.ParamName}官方的唯一方法

在被include页中取出参数,在myJsp.jsp页面中,获得参数的方法就是${param.ParamName}。

<div>通过这样取出参数值${param.param1}</div>

对了,要获得参数必须使用param这个对象。根据官方的struts include document说明,只能通过${param.param1}这样取出,其他方法不能直接取出来,<s:property>标签不能取出参数。

注意:不要在<s:property>标签的属性里使用${}标记,${}能够在html代码中直接显示。如果需要,请查阅Expression Language (EL)

取参数方法二:利用request对象来传递

include传参数还是一样的方法。但是在取参数,使用里一些小技巧。

<% pageContext.setAttribute("myparam" , request.getParameter("param1")); %>           
<s:property value="#attr.myparam"/>

通过pageContext对象来设置参数,或者你也可以使用request对象来实现参数的设置。有点投机了,不过此方法只能取字符串?为什么我不能获得其他值呢?

取参数方法三:不用include传入参数,在外头定义约定变量

<s:set name="param1" value="#request.user" />
<s:include value="myJsp.jsp" />

此方法有点投机取巧了。没有经过include标签传入参数,但在外头定义一个变量,在myJsp.jsp页取得共同约定的变量也不错。这样,在myJsp.jsp页中可以使用struts标签,和正常的情况一样使用,用起来很方便。个人喜欢使用这个方法。

取参数方法四:自己设置valueStack

参考文章来源:http://blog.csdn.net/james_wu_shanghai/article/details/4034739

在myJsp.jsp页面中自己忘valueStack添加自己的值。

<%@page import="com.opensymphony.xwork2.ognl.OgnlValueStack"%>
<%
 ((OgnlValueStack) request.getAttribute("struts.valueStack")).set(
   "operation", request.getParameter("operation"));
%>

<s:property value="operation"/>

此方法本人也用过,能正常工作,但是在其他页面出现问题了,详情请查看struts里不能获得request的参数。立刻将此方法撤下了。

声明:未经允许禁止转载 东东东 陈煜东的博客 文章,谢谢。如经授权,转载请注明: 转载自东东东 陈煜东的博客

本文链接地址: 获取struts2 include标签param参数 – https://www.chenyudong.com/archives/access-struts2-include-tag-parameter-in-another-jsp-page.html

分类: 网站建设

遭遇第一次网络安全攻击 » « jsp页面使用ckeditor所见即所得html编辑器

发表评论

邮箱(不会被公开)

*

Copyright © 2019 东东东 陈煜东的博客 粤ICP备13059639号-1

SITEMAP回到顶部 ↑