Reputation: 179
Gender.java
public enum Gender {
Male("male"), Female("Female");
String gender;
private Gender(String gender) {
this.gender = gender;
}
public String getGender() {
return this.gender;
}
}
I'm a beginner and I haven't used enums before. It this the right way to get the enum values?
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;
}
}
Controller
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home( Model model) {
model.addAttribute("enums",Gender.values());
System.out.println(Gender.values());
return "home";
}
Is it the correct way to get the enum values???
jsp file
<form>
<select>
<c:forEach items="${enums} " var="key">
<option value="${key}">${key}</option>
</c:forEach>
</select>
</form>
When I try to populate the values, its simply null or empty. How to fix this??
Upvotes: 3
Views: 6307
Reputation: 160
Change in @Controller code enum values to as a List. I think this may helps you.
@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";
}
Upvotes: 2