我的JSP中有以下块,它从ENUM值{CREATE, CREATE_FROM_CAMPAIGN, OPEN}
转换为漂亮,可读的状态文本。
出于某种原因,针对'CREATE'
的第一次测试有效,但针对'CREATE_FROM_CAMPAIGN'
的测试却没有。
<c:choose>
<c:when test="${entry.activity eq 'CREATE'}">
<td>was created</td>
</c:when>
<c:when test="$(entry.activity eq 'CREATE_FROM_CAMPAIGN'}">
<td>was created from campaign</td>
</c:when>
<c:otherwise>
<td>was opened (${entry.activity}) </td>
</c:otherwise>
</c:choose>
这一项的一项输出如下:
已打开(CREATE_FROM_CAMPAIGN)
被打开(OPEN)
为什么第二次测试不起作用?
答案 0 :(得分:9)
它不起作用,因为您使用$(
代替${
来启动表达式。
相应修复:
<c:choose>
<c:when test="${entry.activity eq 'CREATE'}">
<td>was created</td>
</c:when>
<c:when test="${entry.activity eq 'CREATE_FROM_CAMPAIGN'}">
<td>was created from campaign</td>
</c:when>
<c:otherwise>
<td>was opened (${entry.activity}) </td>
</c:otherwise>
</c:choose>