Sagar Nepali
Sagar Nepali

Reputation: 179

How to access enum values in Spring mvc

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

Answers (1)

Suman Behara
Suman Behara

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

Related Questions