如何在Spring mvc中访问枚举值

时间:2016-08-04 07:40:21

标签: java spring enums

Gender.java

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>

当我尝试填充值时,它只是null或空。怎么解决这个?

1 个答案:

答案 0 :(得分: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";
}