论坛首页 Java企业应用论坛

如何动态组合几个jsp(不是用于布局的那种,jsp个数不定)

浏览 6044 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-05-31  
例如,一种产品由若干个不同类型的零件组成,每种类型的零件有一个对应的jsp显示其信息;零件类型和对应的jsp配置保存在数据库中

显示一个产品时如何把不同表示零件的jsp组合起来?
tiles和jsp:include不行,因为page参数不能动态指定
   发表时间:2006-05-31  
webwork可以实现,你在action里面放一个字符串变量
然后在xwork.xml设置返回为${变量名}.jsp
然后用动态的<ww:action>就可以传字符串嵌入jsp了
0 请登录后投票
   发表时间:2006-06-01  
昨晚回去又试了一下,这样也行
<tiles:insert page="<%=pageUri%>"  flush="true"/>
0 请登录后投票
   发表时间:2006-06-01  
jsp include 不能够动态传参数???

我下面的代码就是可以运行的
<jsp:include flush="true" page="/content/${param.pagename}.jsp"/>
0 请登录后投票
   发表时间:2006-06-01  
howdoudo 写道
例如,一种产品由若干个不同类型的零件组成,每种类型的零件有一个对应的jsp显示其信息;零件类型和对应的jsp配置保存在数据库中

显示一个产品时如何把不同表示零件的jsp组合起来?
tiles和jsp:include不行,因为page参数不能动态指定

tiles
0 请登录后投票
   发表时间:2006-06-05  
<jsp:include>
Includes a static file or sends a request to a dynamic file.

Syntax
<jsp:include page="{relativeURL | <%= expression %>}" flush="true" />
or
<jsp:include page="{relativeURL | <%= expression %>}" flush="true" >
      <jsp:param name="parameterName" 
		value="{parameterValue | <%= expression %>}" />+ 
</jsp:include>


Examples
<jsp:include page="scripts/login.jsp" />
<jsp:include page="copyright.html" />
<jsp:include page="/index.html" />
<jsp:include page="scripts/login.jsp">
	<jsp:param name="username" value="jsmith" />
</jsp:include>


或者比如用webwork,可以使用ww:include或者ww:action配合ww:param都可以传递参数。它们就是取代jsp:include的包装。
<% @include ... 是编译期的所以不能传参数。
0 请登录后投票
   发表时间:2006-06-06  
终极解决方案:

jsp:include就相当于
request.getRequestDispatcher( jspFileName ).include(request, response);

只是jsp:include已经退化了,不知道怎么组织在正常的代码序列里面。所以,可以直接使用RequestDispatcher。

而且这种用法没有任何限制。甚至可以动态决定,是否需要include某个jsp.

if ( a == 1)
   request.getRequestDispatcher( "1.jsp" ).include(request, response);
else if ( a == 2)
   request.getRequestDispatcher( "2.jsp" ).include(request, response);
// else include nothing
0 请登录后投票
   发表时间:2006-06-09  
多谢各位指点,回去再好好研究一下
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics