spring mvc freemarker 中遍历枚举
1枚举类型有一个本地方法叫values(),这个方法可以直接返回枚举数组。所以可以利用这个遍历。
enum
public enum BooleanEnum {
TRUE(Boolean.TRUE, "是"), FALSE(Boolean.FALSE, "否");
private final Boolean value;
private final String info;
private BooleanEnum(Boolean value, String info) {
this.value = value;
this.info = info;
}
public String getInfo() {
return info;
}
public Boolean getValue() {
return value;
}
}
springmvc中这样写
model.addAttribute("enum",BooleanEnum .values());
此时emum就存放了所定义枚举的数据页面可以直接遍历,注意的是通过${val.info}是获取不到值的。必须使用val.getInfo()
<#list enum as val>
<li value="${val}">${val.getValue()}</li>
</#list>
另外后台使用model.addAttribute("enums", BeansWrapper.getDefaultInstance().getEnumModels());
页面用
< #list enums["com.*****.BooleanEnum "]?values as priority>
<select name="subjectId">
<option value="${subproject.id?c}"
>${subproject.nickname}</option>
</#list>
也可以取出数据。但不够灵巧