针对向 通过 include 标签的导入的页面传递参数的方式,我尝试了一下,有以下几种方式:
方式一
main.jsp<s:include value="/jsp/child.jsp"><s:param name="tooltip">test</s:param> </s:include>
child.jsp<div id="tooltipBar"><div id="tooltip">${param.tooltip}</div> </div>
其中,在child中,是使用的EL表达式来获取参数的。
如果不想使用EL,而是想使用STRUTS2的标签去获取的话,可以像如下这样来实现:
child.jsp<%@page import="com.opensymphony.xwork2.ognl.OgnlValueStack"%> <%((OgnlValueStack) request.getAttribute("struts.valueStack")).set("tooltip", request.getParameter("tooltip")); %><div id="tooltipBar"><div id="tooltip">${param.tooltip}</div> </div>
为什么要么做?可以参考下面的BLOG:
http://blog.csdn.net/leidengyan/article/details/7960237
方式二
main.jsp<s:set var="tooltip">test</s:set> <s:include value="/jsp/child.jsp" />
上面的 s:include 也可以换成:
<%@ include file="/jsp/content_header2.jsp" %>
child.jsp<div id="tooltipBar"><div id="tooltip"><s:property value="#tooltip" /></div> </div>
方式三
使用JSP标签。
main.jsp<jsp:include page="/jsp/child.jsp"><jsp:param name="tooltip" value="test"/> <!-- value的值无法与struts2的标签嵌套使用 --> </jsp:include>
child.jsp<div id="tooltipBar"><div id="tooltip">${param.tooltip}</div><div id="tooltipArrow">V</div> </div>