浏览 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的属性 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
最后更新时间:2008-05-22
就是从jsp页面到action如何从0->枚举Sex.MALE值 自动实现
如果不能,碰到枚举就只能手工处理了 |
|
| 返回顶楼 | |
|
最后更新时间:2008-05-22
除非你为这个枚举类型写一个转换器,否则只能用int来替换枚举类型,然后调用的时候使用枚举类型的ordinal()方法判断是否相等。
例如 Sex.MALE.ordinal() == 0 |
|
| 返回顶楼 | |
|
最后更新时间:2008-05-22
myoldman 写道 除非你为这个枚举类型写一个转换器,否则只能用int来替换枚举类型,然后调用的时候使用枚举类型的ordinal()方法判断是否相等。
例如 Sex.MALE.ordinal() == 0 那就只能页面获得int值,再从enum.values[]得到实际的枚举对象 希望以后的cglib能增加对枚举的支持 |
|
| 返回顶楼 | |
|
最后更新时间:2008-05-23
我用了struts2类型转换器来做,可以输入,但是转换器toString用枚举的toString 我想输出0 1这样的顺序值,又发生问题了,直接输出enum我的override了toString,所以不是输出MALE,而是“男”,但是在select中选择的0,又有问题了,看来只能单独处理枚举类
1个解决就是枚举设置一个value,value保存"男",而toString输出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();
}
}
|
|
| 返回顶楼 | |
|
最后更新时间:2008-06-24
已经解决了,在safeNullGet用反射得到values()的E[],根据index就是对应enum对象,set的时候保存ordianl
|
|
| 返回顶楼 | |
|
最后更新时间:2008-06-24
补充:页面是用map来处理s:selcct
|
|
| 返回顶楼 | |
|
最后更新时间:2008-07-03
danielye 写道 补充:页面是用map来处理s:selcct
这位壮士, 能否详细说明下你的解决方法啊? 谢谢了。。。 |
|
| 返回顶楼 | |




