You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将JSP的Model对象列表传递至被包含JSP页面?

解决JSP包含页面时传递集合对象的问题

问题根源

<jsp:param>只能传递字符串类型的参数,当你传入集合对象时,它会自动调用对象的toString()方法把集合转成类似[com.example.Lead@xxxx, ...]的字符串形式,被包含页面拿到的只是一串文本,自然没法用<c:forEach>遍历。

可行解决方案

方案1:利用request作用域共享对象

<jsp:include>是服务器端包含,原页面和被包含页面共享同一个request作用域,直接把集合存入request,被包含页面直接读取即可:

原页面代码修改为:

<!-- 把集合存入request作用域 -->
<c:set var="leadTypeList" scope="request" value="${leadType}"/>
<!-- 直接引入页面,无需传param -->
<jsp:include page="leadCreate.jsp"/>

在leadCreate.jsp中直接使用:

<c:forEach items="${leadTypeList}" var="leadItem">
    <!-- 你的遍历逻辑,比如输出对象属性 -->
    ${leadItem.propertyName}
</c:forEach>

方案2:通过请求属性手动传递(备选)

如果需要更明确的传递逻辑,也可以在原页面通过脚本设置请求属性,不过方案1更简洁:

<%
    // 把控制器传递的leadType存入request属性
    request.setAttribute("leadTypeList", request.getAttribute("leadType"));
%>
<jsp:include page="leadCreate.jsp"/>

被包含页面的遍历代码和方案1一致。


内容的提问来源于stack exchange,提问作者Yadhu Krishna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 11:27:27