将List传递给另一个jsp文件

我想将主JPS中的List类型对象传递给包含JSP(jsp:include)。 由于parm只支持字符串,因此我无法使用parm标记将List类型数据传递给include文件。

使用示例:

   

要么:

          

我可以创建一个简单的标记处理程序,但我想知道是否有更简单的方法。

同意ChssPly76,如果在JSP中生成List,它可能是一个麻烦的迹象,但另一种将对象传递给另一个JSP的替代方法是使用scriplet将它添加到HttpServletRequest对象属性字段:

JSP与列表:

 <% request.setAttribute("theList", ListObject); %> 

另一个JSP:

 <% List myList = (List) request.getAttribute("theList"); %> 

这确实是jsp标签的意思。 您创建一个接受属性 (非参数)的.tag文件,该属性可以是任意类型。

请参阅此文章以获得一个好的教程。

“Params”类似于您在HTTP查询中看到的参数(“?”后面的URL部分)。

你是如何在主JSP中获得该列表的?

如果您从模型中获取它(直接/间接请求/会话属性),您可以将属性的名称传递给包含的JSP,并从模型中重新获取它:

    

如果您在JSP本身生成或修改该列表,那么您确实遇到了更大的问题:-)但是您可以列表绑定到某个属性名称下的请求,然后使用上述方法。

假设您将列表放在请求范围中并使用applications作为参数的名称,您可以参考像${requestScope[param.applications]}这样的列表

您可以通过requestScope传递List对象:

   

在appList.jsp中,您可以使用检索列表

 ${requestScope.listApplications} 

您可以使用请求或会话对象来传输对象。

优点

请求 – 使用请求,因为与会话对象相比,其生命周期较短。

会话 – 您可以稍后在另一个页面或操作中检索相同的对象

假设你有parent.jsp和child.jsp。

你想要:

1)包含来自parent.jsp的child.jsp,2)将一些参数从parent.jsp发送到child.jsp。

执行以下步骤:

1)在parent.jsp中

 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>   

`2)在child.jsp中

 
alert("${requestScope.items}");

就这样。