2011-03-03 126 views
8

我的Java枚舉看起來是這樣的:JSP:訪問枚舉JSP EL標籤內

public enum EmailType { HOME, WORK, MOBILE, CUSTOMER_SERVICE, OTHER } 

在JSP中,我想做某事像下面,這是行不通的。

<c:choose> 
      <c:when test="${email.type == EmailType.HOME}">(Home)</c:when> 
      <c:when test="${email.type == EmailType.WORK}">(Work)</c:when> 
</c:choose> 

谷歌搜索後,我發現這些鏈接:Enum inside a JSP。但是,我想避免在JSP中使用腳本。我如何訪問EL標籤內的Java枚舉並進行比較?請幫忙。

+3

的重複[在JSP EL枚舉值總是爲空(http://stackoverflow.com/questions/4606673/in-jsp-el-enum-value-always-empty)。只要把它們當作字符串。 – BalusC 2011-03-03 15:25:26

+0

感覺它不是重複的,原因如下:枚舉EmailType被寫入一個單獨的java文件(EmailType.java),它不包含任何方法。 – Arjun 2011-03-03 15:39:07

+0

我的電子郵件實體如下所示:public class Email {... EmailType type; ...} – Arjun 2011-03-03 15:41:16

回答

7

當一個枚舉被序列化時,它變成一個字符串。所以只需使用字符串比較。

<c:choose> 
      <c:when test="${email.type == 'HOME'}">(Home)</c:when> 
      <c:when test="${email.type == 'WORK'}">(Work)</c:when> 
</c:choose>