用于构建对象列表的JSP EL表达式

问题描述 投票:0回答:1

我被赋予了重构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 objetcs的集合(实际上是列表),然后:

<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}]"

我不知道还能尝试什么。

UPDATE

项目的web.xml说<web-app version="3.0">

jsp el
1个回答
0
投票

发现它:

<c:forEach var="phase" items="${[value.prepphase, value.initphase, value.legalphase, value.auctionphase, value.analysisphase]}">
...
</c:forEach>
© www.soinside.com 2019 - 2024. All rights reserved.