首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

struts2 ModelDriven枚举类型数据该怎么办

2013-02-25 
struts2 ModelDriven枚举类型数据该怎么处理举个例子某个action实现了ModelDrivenUser接口,User类字段:p

struts2 ModelDriven枚举类型数据该怎么处理
举个例子某个action实现了ModelDriven<User>接口,
User类字段:


        private String personName;
private int age;
private Sex sex;     //枚举

枚举类

public enum IsCheck {  
MALE("男",0),FEMALE("女",1),UNKNOWN("不知道",2);  
        // 成员变量  
        private String name;  
        private int index;  
        // 构造方法  
        private IsCheck(String name, int index) {  
            this.name = name;  
            this.index = index;  
        }
        /**
         * 
         * 功能描述:根据名字取得相应枚举值
         * @param name 中文值
         * @return 枚举值
         */
        public static IsCheck getName(String name) {  
            for (IsCheck c : IsCheck.values()) {  
                if (c.getName() == name) {  
                    return c;  
                }  
            }  
            return null;  
        }
        /**
         * 
         * 功能描述:根据序号取得相应枚举值
         * @param index 序号
         * @return 枚举值
         */
        public static IsCheck getName(int index) {  
            for (IsCheck c : IsCheck.values()) {  
                if (c.getIndex() == index) {  
                    return c;  
                }  
            }  
            return null;  
        }


        
        // get set 方法  
        public String getName() {  
            return name;  
        }  
        public void setName(String name) {  
            this.name = name;  
        }  
        public int getIndex() {  
            return index;  
        }  
        public void setIndex(int index) {  
            this.index = index;  
        }  
    }  


在前台<input name="sex" type="text"/>提交表单的后会报错,问题就是input标签name属性改怎么写,ModelDriven才能接受到枚举的数据。
[解决办法]
你的Sex枚举类里的

 public static Sex getName(String name) { 
    for (Sex c : Sex.values()) { 
            if (c.getName().equals(name)) {//用equals做比较           
               return c;                   
            }          
      }            
    return null; 


竟然是这样那你在action中对Sex sex;生成的set方法可以这样做
public void setSex(String sex){
    this.sex=Sex.getName(sex);//将传进来的字符串通过你的getName方法找到相应的Sex实例
}

热点排行