gpt4 book ai didi

jsp - 可以jsp :param store a collection?

转载 作者:行者123 更新时间:2023-12-05 00:39:01 25 4
gpt4 key购买 nike

你好,问题来了。我有一个页面叫 entList.jsp ,适用于集合:

<c:forEach var = "pack" items = "${packingList}">
<!--Here goes something with outputting the pack instance in a required format-->
</c:forEach>

一切正常,参数 装箱单由调用此页面的操作处理程序作为请求的属性传递。其实 装箱单是 Collection 类型。

事实证明,这个页面(它存储的片段)实际上非常有用,并且可以在许多不同集合的地方使用。所以我试图像这样包含这个页面(在另一个页面中):
<jsp:include page="entList.jsp">
<!-- Pass the required collection as a parameter-->
<jsp:param name = "packingList" value = "${traffic.packingList}"/>
</jsp:include>

但是,现在这个片段没有看到参数 装箱单 .我试图像这样重写片段(因为现在它是一个参数):
<c:forEach var = "pack" items = "${param.packingList}">
<!--Here goes something with outputting the pack instance in a required format-->
</c:forEach>

但是现在它产生了一个异常,因为它处理 装箱单作为字符串而不是集合。所以现在的解决方案是这样的 - 将所需的集合设置为 Action 处理程序代码中的一个属性:
// This is the original instance set by the action
request.setAttribute("traffic", traffic);
// And this is the additional one, to be used by entList.jsp
request.setAttribute("packingList", traffic.getPackingList());

所以问题是 - 可以 jsp:param 标签接收一个集合作为它的值(value)?我阅读了 JSP 标签的文档,但仍然不清楚 - 似乎唯一可以以字符串参数(或可以转换为字符串的东西)的方式传递的东西,但没有复杂的对象。

最佳答案

您应该使用标记文件,并使用正确的参数类型声明标记。

例如如 packingList.tag

<%@tag %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@attribute name="packingList" required="true" type="java.util.Collection<Packing>"
description="the packing list." %>
<c:forEach var = "pack" items = "${packingList}">
<!--Here goes something with outputting the pack instance in a required format-->
</c:forEach>

然后,将此文件放在 WEB-INF/tags
然后,添加到您的jsp文件中
<%@ taglib tagdir="/WEB-INF/tags" prefix="pack" %>

<pack:packingList packingList="${packingList}"/>

http://download.oracle.com/javaee/1.4/tutorial/doc/JSPTags5.html欲了解更多信息

关于jsp - 可以jsp :param store a collection?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4872264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com