将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}");
就这样。