枚举是有限的数据集合:是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内
在数学和计算机科学理论中,一个集的枚举是列出某些有穷序列集的所有成员的程序,或者是一种特定类型对象的计数。这两种类型经常(但不总是)重叠。
枚举是一个被命名的整型常数的集合,枚举在日常生活中很常见,例如表示星期的SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY、SATURDAY就是一个枚举。 java如下定义:
package com.uet.course.enums;
/**
* 教材:册
* @author huangjs
* @version 2015年2月7日9:44:34
*/
public enum Volumns {
ALL(0,"全册"),
UP(1,"上册"),
DOWN(2,"下册")
;
Volumns(){
}
Volumns(int id,String name){
this.id=id;
this.name=name;
}
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
} struts2中定义获取:
public Volumns[] getVolumns(){
return Volumns.values();
} 前台freemarker循环展示:
---选择册---
selected="selected" #if>>
${volumn.name}
#list>
这样的获得name属性是会报错的。
用debug模式调适,我们可以看到获得得的数组中每个元素是这样的:
每个元素有两个name属性,一个是自身所带。另外一个是我们自定义的属性。
所以我们需要将枚举类改为下面这样:
package com.uet.course.enums;
/**
* 教材:册
* @author huangjs
* @version 2015年2月7日9:44:34
*/
public enum Volumns {
ALL(0,"全册"),
UP(1,"上册"),
DOWN(2,"下册")
;
Volumns(){
}
Volumns(int id,String title){
this.id=id;
this.title=title;
}
private int id;
private String title;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public static int getIdByTitle(String title,int default_value){
Volumns[] all=Volumns.values();
for(Volumns item : all){
if(title.equals(item.getTitle())){
return item.getId();
}
}
return default_value;
}
} 使用 title来代替我们自定义的name属性。
debug时可以看到如下:
前台freemarker取的时候,使用 title属性即可。