JSP 用于构建对象列表的 EL 表达式
JSP EL Expression for building a list of objects
我接到了重构 JSP 项目的任务,我上一次为 JSP 编码是在 2005 年,那时候我们使用了更多的 scriptlet,而且 - AFAIK - 没有表达语言。
我当前面对的页面片段是这样的:
<c:if test="${value.prepphase.exists}">
<div>${value.prepphase.value.status}</div>
<div>${value.prepphase.value.eta}</div>
</c:if>
<c:if test="${value.initphase.exists}">
<div>${value.initphase.value.status}</div>
<div>${value.initphase.value.eta}</div>
</c:if>
<c:if test="${value.legalphase.exists}">
<div>${value.legalphase.value.status}</div>
<div>${value.legalphase.value.eta}</div>
</c:if>
<c:if test="${value.auctionphase.exists}">
<div>${value.auctionphase.value.status}</div>
<div>${value.auctionphase.value.eta}</div>
</c:if>
<c:if test="${value.analysisphase.exists}">
<div>${value.analysisphase.value.status}</div>
<div>${value.analysisphase.value.eta}</div>
</c:if>
重复太多了吧?
我的计划是构建一个 value.prepphase, value.initphase, value.legalphase, value.auctionphase, value.analysisphase
对象的集合(实际上是一个列表),然后:
<c:forEach var="phase" items="${now how to build the list?!?!?!}">
<c:if test="${phase.exists}">
<div>${phase.value.status}</div>
<div>${phase.value.eta}</div>
</c:if>
</c:forEach>
我的问题是:如何建立列表?
我试过:
${java.util.Arrays.asList(value.prepphase, value.initphase, value.legalphase, value.auctionphase, value.analysisphase)}
但 value
不可用;
[${value.prepphase}, ${value.initphase}, ${value.legalphase}, ${value.auctionphase}, ${value.analysisphase}]
但这会产生一个包含 5 个字符串的列表 ("[${value.prepphase}"
, "${value.initphase}"
... "${value.analysisphase}]"
)
我不知道还能尝试什么。
更新
项目的 web.xml 说 <web-app version="3.0">
。
找到了:
<c:forEach var="phase" items="${[value.prepphase, value.initphase, value.legalphase, value.auctionphase, value.analysisphase]}">
...
</c:forEach>
我接到了重构 JSP 项目的任务,我上一次为 JSP 编码是在 2005 年,那时候我们使用了更多的 scriptlet,而且 - AFAIK - 没有表达语言。
我当前面对的页面片段是这样的:
<c:if test="${value.prepphase.exists}">
<div>${value.prepphase.value.status}</div>
<div>${value.prepphase.value.eta}</div>
</c:if>
<c:if test="${value.initphase.exists}">
<div>${value.initphase.value.status}</div>
<div>${value.initphase.value.eta}</div>
</c:if>
<c:if test="${value.legalphase.exists}">
<div>${value.legalphase.value.status}</div>
<div>${value.legalphase.value.eta}</div>
</c:if>
<c:if test="${value.auctionphase.exists}">
<div>${value.auctionphase.value.status}</div>
<div>${value.auctionphase.value.eta}</div>
</c:if>
<c:if test="${value.analysisphase.exists}">
<div>${value.analysisphase.value.status}</div>
<div>${value.analysisphase.value.eta}</div>
</c:if>
重复太多了吧?
我的计划是构建一个 value.prepphase, value.initphase, value.legalphase, value.auctionphase, value.analysisphase
对象的集合(实际上是一个列表),然后:
<c:forEach var="phase" items="${now how to build the list?!?!?!}">
<c:if test="${phase.exists}">
<div>${phase.value.status}</div>
<div>${phase.value.eta}</div>
</c:if>
</c:forEach>
我的问题是:如何建立列表?
我试过:
${java.util.Arrays.asList(value.prepphase, value.initphase, value.legalphase, value.auctionphase, value.analysisphase)}
但 value
不可用;
[${value.prepphase}, ${value.initphase}, ${value.legalphase}, ${value.auctionphase}, ${value.analysisphase}]
但这会产生一个包含 5 个字符串的列表 ("[${value.prepphase}"
, "${value.initphase}"
... "${value.analysisphase}]"
)
我不知道还能尝试什么。
更新
项目的 web.xml 说 <web-app version="3.0">
。
找到了:
<c:forEach var="phase" items="${[value.prepphase, value.initphase, value.legalphase, value.auctionphase, value.analysisphase]}">
...
</c:forEach>