Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何填充组合框,从枚举中获取值_Java_Struts2 - Fatal编程技术网

Java 如何填充组合框,从枚举中获取值

Java 如何填充组合框,从枚举中获取值,java,struts2,Java,Struts2,我有一个带有一个组合框的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; priv

我有一个带有一个组合框的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;
  }
}

您可以使用
Roles.values()
获取所有枚举值并从那里开始。

角色应命名为Role。你在getRoleOf方法中忘记了五个。您应该迭代所有值(使用static values()方法)以找到具有给定名称的值:这将使代码更短、更健壮。您还可以将角色命名为
one
,而不是
one
,从而允许您使用
roles.valueOf(String arg)
来获取角色值(如果没有异常,则捕获一个
IllegalArgumentException
)。
Roles[] allRoles = Roles.values();
for(Roles role : allRoles) {
    // add role to combo box using role.getDisplayString
}