2011-09-16 47 views
0

我有一個組合框的jsp頁面,我有一個類是一個枚舉。如何填充組合框,從枚舉中取值

我想填充我的組合框在JSP和它的人口時,我想保存在d這些值/ B哪能它在Struts 2的

public enum Roles { 
    ONE ("One"), 
    TWO ("Two"), 
    THREE ("Three"), 
    FOUR ("Four"), 
    FIVE ("Five"), 
    ALL ("All"); 

    private final String displayValue; 

    private Roles(String displayString){ 
     this.displayValue = displayString; 
    } 
    public String getDisplayString() { 
     return displayValue; 
    } 

    public static Roles getRoleOf(String displayValue){   
     if(displayValue.equals("One")) 
      return ONE; 
     if(displayValue.equals("Two")) 
      return TWO; 
     if(displayValue.equals("Three")) 
      return THREE; 
     if(displayValue.equals("Four")) 
      return FOUR; 
     if(displayValue.equals("All")) 
      return ALL; 
     else return ALL; 
    } 
} 
+0

角色應該被命名爲角色。你在getRoleOf方法中忘了FIVE。你應該迭代所有的值(使用靜態values()方法)來找到給定名稱的值:它會使代碼更短,更健壯。 –

+0

您也可以將您的角色命名爲'One'而不是'ONE',從而允許您使用'Roles.valueOf(String arg)'獲取角色值(如果沒有,則捕獲'IllegalArgumentException')。 –

回答

0

可以使用Roles.values()讓所有的枚舉值並從那裏開始。

0
Roles[] allRoles = Roles.values(); 
for(Roles role : allRoles) { 
    // add role to combo box using role.getDisplayString 
}