2016-08-04 83 views
2

Gender.java如何访问Spring MVC中枚举值

public enum Gender { 
    Male("male"), Female("Female"); 

    String gender; 

    private Gender(String gender) { 
     this.gender = gender; 
    } 

    public String getGender() { 
     return this.gender; 
    } 

} 

我是一个初学者,我以前没有使用枚举。这是获得枚举值的正确方法吗?

Student.java

public class Student { 



    private String firstName, lastName; 
    private Gender gender; 
    public String getFirstName() { 
     return firstName; 
    } 
    public void setFirstName(String firstName) { 
     this.firstName = firstName; 
    } 
    public String getLastName() { 
     return lastName; 
    } 
    public void setLastName(String lastName) { 
     this.lastName = lastName; 
    } 
    public Gender getGender() { 
     return gender; 
    } 
    public void setGender(Gender gender) { 
     this.gender = gender; 
    } 

} 

控制器

@RequestMapping(value = "/", method = RequestMethod.GET) 
    public String home(Model model) { 


     model.addAttribute("enums",Gender.values()); 

     System.out.println(Gender.values()); 
     return "home"; 
    } 

是它获得枚举值的正确方法???

JSP文件

<form> 
    <select> 
     <c:forEach items="${enums} " var="key"> 
      <option value="${key}">${key}</option> 
     </c:forEach> 
    </select> 
</form> 

当我尝试填充值,它只是空。如何解决这个问题?

+0

什么是控制台上的sysout打印?的System.out.println(Gender.values()); – Lovababu

回答

0

将@Controller代码枚举值更改为List。我认为这可能会帮助你。

@RequestMapping(value = "/", method = RequestMethod.GET) 
    public String home(Model model) { 
    List<Gender> enums = Arrays.asList(Gender.values()); 
    model.addAttribute("enums",enums); 
    System.out.println(enums.size()); 
    return "home"; 
} 
+0

谢谢@suman现在都很好! – TheDumbDeveloper