2011-08-29 48 views
5

我的JSP中有以下塊,它將ENUM值{CREATE, CREATE_FROM_CAMPAIGN, OPEN}轉換爲漂亮的可讀狀態文本。如何在JSTL EL測試中針對枚舉值進行測試?

由於某種原因,第一次測試針對'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)

爲什麼第二次測試不工作?

回答

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> 
+0

謝謝。儘管查看了很長一段時間的代碼,但還是無法找到那個大括號。不過,我已經標記了我的帖子,因爲它不會讓任何人受益。 –