首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

枚举种在Struts2中的运用

2012-08-27 
枚举类在Struts2中的运用import java.util.LinkedHashMapimport java.util.Mappublic enum SettlementCy

枚举类在Struts2中的运用

import java.util.LinkedHashMap;import java.util.Map;public enum SettlementCycle implements ConstantSupport{Buyout{ public String cnName(){ return "买断"; } },BillCycle{ public String cnName(){ return "单结"; } },WeekCycle{ public String cnName(){ return "每周"; } },MonthCycle{ public String cnName(){ return "每月"; } },QuarterCycle{ public String cnName(){ return "每季"; } },SemiannualCycle{ public String cnName(){ return "每半年"; } },YearCycle{ public String cnName(){ return "每年"; };//年桔 }; private static final Map<Integer,String> ordinalMap; private static final Map<String,String> stringMap; static{ ordinalMap = new LinkedHashMap<Integer,String>(); for(SettlementCycle cycle:SettlementCycle.values()){ ordinalMap.put(cycle.ordinal(),cycle.cnName()); } stringMap = new LinkedHashMap<String,String>(); for(SettlementCycle cycle:SettlementCycle.values()){ stringMap.put(cycle.name(),cycle.cnName()); } } public static Map ordinalMap(){ return ordinalMap; } public static Map stringMap(){ return stringMap; } public static String cnName(int i){ return SettlementCycle.values()[i].cnName(); }}

?

import ognl.DefaultTypeConverter;import java.util.Map;public class EnumerationConverter extends DefaultTypeConverter { @Override public Object convertValue(Map context, Object value, Class toType) { if (toType.isEnum()) { if (value == null)return null; if (value instanceof String[]) { String[] ss = (String[]) value; if (ss.length == 1) { return Enum.valueOf(toType, ss[0]); } else { Object[] oo = new Object[ss.length]; for (int i = 0; i < ss.length; i++) { oo[i] = Enum.valueOf(toType, ss[i]); } return oo; } } } return super.convertValue(context, value, toType); }}

<constant name="struts.ognl.allowStaticMethodAccess" value="true" />

<@s.select list="@xx.SettlementCycle@ordinalMap()" name="contract.cycle" /><@s.radio list="@xx.SettlementCycle@ordinalMap()" name="contract.cycle" /><@s.checkboxlist list="@xx.SettlementCycle@ordinalMap()" name="contract.cycle" />?在 freemaker显示枚举的中文名

<@s.property value=” @xx.SettlementCycle@cnName(name)”/> 

其中第二部的enum转化器是从网络上获取的

如果更好的建议,欢迎拍砖:)

热点排行