关于Struts2中使用枚举和静态调用

struts2中经常用到枚举,代码如下:

/**
 * 用户级别
 * @author LiYongqaing
 */
public enum UserLevel {
	/**超级管理员*/
	SUPER_ADMIN{
		@Override
		public String getValue() {
			return "超级管理员";
		}
	},
	/**局长*/
	JUZHANG{
		@Override
		public String getValue() {
			return "局长";
		}
	},
	/**主任*/
	ZHUREN{
		@Override
		public String getValue() {
			return "主任";
		}
	},
	/**系统管理员*/
	ADMIN{
		@Override
		public String getValue() {
			return "系统管理员";
		}
	},
	/**科长*/
	KEZHANG{
		@Override
		public String getValue() {
			return "科长";
		}
	},
	/**科员*/
	KEYUAN{
		@Override
		public String getValue() {
			return "科员";
		}
	};
	public abstract String getValue();
	public static List<String> getValues(){
		List<String> list = new ArrayList<String>();
		for (UserLevel level : UserLevel.values()) {
			list.add(level.getValue());
		}
		return list;
	}
	public static List<String> getValues2(){
		List<String> list = new ArrayList<String>();
		for (UserLevel level : UserLevel.values()) {
			if(!"超级管理员".equals(level.getValue())){
				list.add(level.getValue());
			}
		}
		return list;
	}
}

 还需要定义类型转换器:

@SuppressWarnings("unchecked")
public class UserLevelConverter extends StrutsTypeConverter {
	@Override
	public Object convertFromString(Map arg0, String[] arg1, Class arg2) {
		UserLevel[] levels = UserLevel.values();
		for (UserLevel level : levels) {
			if(level.getValue().equals(arg1[0])){
				return level;
			}
		}
		return null;
	}
	@Override
	public String convertToString(Map arg0, Object arg1) {
		UserLevel level = (UserLevel) arg1;
		return level.getValue();
	}

}

 

 

struts2标签调用如下:

<s:select name="userLevel" list="@com.itqiang.bean.user.UserLevel@getValues2()" value="@com.itqiang.bean.user.UserLevel@KEYUAN.getValue()" />

 

注意静态方法调用需要:

<!-- OGNL可以使用静态方法 -->
 <constant name="struts.ognl.allowStaticMethodAccess" value="true"/> 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值