论坛首页 入门讨论版 Struts

问个struts2+hibernate在JSP自动获得枚举值的问题

浏览 649 次
该帖已经被评为新手帖
作者 正文
最后更新时间:2008-05-22 关键字: struts2 hibernate
Sex是个枚举 {MAEL,FEMALE}
对象Student 有个属性是 Sex sex,通过UserType操作
jsp里面使用<s:select>处理obj.sex为
<option value="0">male></option>
<option value="1">female></option>
在action里面Student obj的sex值不能直接构造
是不是要修改menu???
有知道怎么自动构造这个枚举值

如果不行,这里就不用自动构造了,单独处理这些enum的属性
   
最后更新时间:2008-05-22
就是从jsp页面到action如何从0->枚举Sex.MALE值 自动实现
如果不能,碰到枚举就只能手工处理了
   
0 请登录后投票
最后更新时间:2008-05-22
除非你为这个枚举类型写一个转换器,否则只能用int来替换枚举类型,然后调用的时候使用枚举类型的ordinal()方法判断是否相等。
例如
Sex.MALE.ordinal() == 0
   
0 请登录后投票
最后更新时间:2008-05-22
myoldman 写道
除非你为这个枚举类型写一个转换器,否则只能用int来替换枚举类型,然后调用的时候使用枚举类型的ordinal()方法判断是否相等。
例如
Sex.MALE.ordinal() == 0


那就只能页面获得int值,再从enum.values[]得到实际的枚举对象
希望以后的cglib能增加对枚举的支持
   
0 请登录后投票
最后更新时间:2008-05-23
我用了struts2类型转换器来做,可以输入,但是转换器toString用枚举的toString 我想输出0 1这样的顺序值,又发生问题了,直接输出enum我的override了toString,所以不是输出MALE,而是“男”,但是在select中选择的0,又有问题了,看来只能单独处理枚举类
1个解决就是枚举设置一个value,value保存"男",而toString输出0
   
0 请登录后投票
最后更新时间:2008-05-24
我目前正是这么做的代码如下
public enum Gender {
	Male{
		@Override
		public String getTitle() {
			return "Male";
		}
	} ,
	Female{
		@Override
		public String getTitle() {
			return "Female";
		}
	};
	public abstract String getTitle();
	public int getValue()
	{
		return this.ordinal();
	}
}
   
0 请登录后投票
最后更新时间:2008-06-24
已经解决了,在safeNullGet用反射得到values()的E[],根据index就是对应enum对象,set的时候保存ordianl
   
0 请登录后投票
最后更新时间:2008-06-24
补充:页面是用map来处理s:selcct
   
0 请登录后投票
最后更新时间:2008-07-03
danielye 写道
补充:页面是用map来处理s:selcct



这位壮士,

能否详细说明下你的解决方法啊?

谢谢了。。。
   
0 请登录后投票
论坛首页 入门讨论版 Struts

跳转论坛:
JavaEye推荐