|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2008-07-03
quaff 写道 ray_linn 写道 quaff 写道 ray_linn 写道 用个convertor就可以了.
是converter不是convertor com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter里面已经有了,这种通用的转化器没必要自己写. converter和convertor在英文里是完全一样的好不好? 又来挖坟了 就算converter不是一个单词,xwork叫这个就是这个 就像http header的referer是referrer拼写错误一样 这位兄弟,既然来了,能否详细说下兄弟的解决方法啊? |
|
| 返回顶楼 | |
|
最后更新时间:2008-07-03
quaff 写道 ray_linn 写道 quaff 写道 ray_linn 写道 用个convertor就可以了.
是converter不是convertor com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter里面已经有了,这种通用的转化器没必要自己写. converter和convertor在英文里是完全一样的好不好? 又来挖坟了 就算converter不是一个单词,xwork叫这个就是这个 就像http header的referer是referrer拼写错误一样 不要掩饰英文不好的事实。我原话说的是“用个convertor",而不是“用convertor" . to:LZ Enum是很特殊的,不能用 java.lang.Enum=.....来转换所有的,要每个Enum单独列出 package.enum=.... |
|
| 返回顶楼 | |
|
最后更新时间:2008-07-03
TrueColor 写道 quaff 写道 ray_linn 写道 quaff 写道 ray_linn 写道 用个convertor就可以了.
是converter不是convertor com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter里面已经有了,这种通用的转化器没必要自己写. converter和convertor在英文里是完全一样的好不好? 又来挖坟了 就算converter不是一个单词,xwork叫这个就是这个 就像http header的referer是referrer拼写错误一样 这位兄弟,既然来了,能否详细说下兄弟的解决方法啊? 不知道你用的什么版本xwork,高版本的xwork是内置了Enum转化的,不需要什么解决方法 |
|
| 返回顶楼 | |
|
最后更新时间:2008-07-03
TrueColor 写道 quaff 写道 ray_linn 写道 用个convertor就可以了.
是converter不是convertor com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter里面已经有了,这种通用的转化器没必要自己写. 我的struts是2.0.11版本,xwork 是 2.0.4版本, 发现xwork里是有个 com.opensymphony.xwork2.util.EnumTypeConverter 我在我的WEB-INF/classes/下建立了一个文件 xwork-conversion.properties 内容如下: java.lang.Enum = com.opensymphony.xwork2.util.EnumTypeConverter 接着,我写了个测试的action, userTest, 在IE中调用: http://localhost:8080/userTest.action?user.name=XXX&user.sex=MALE 发现action中的user只会得到name的属性值,sex属性值还是不能设置进去。 但是,至少不会出错,会得到一个User对象实例了。 如果,URL中,user.sex的值随便写(不再枚举类Sex的值范围内),如okXXX, http://localhost:8080/userTest.action?user.name=XXX&user.sex=okXXX 这样调用,会出错,根本得不到一个User的对象实例, 看来,是有点接近我要的结果了。 请问,还有什么地方要做工作吗? 谢谢!! xwork的版本估计还不够高,新版本的内置的Enum不是以EnumTypeConverter形式的,是直接在com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter里面硬编码的,也就是说你可以把Enum当成Integer这样的类型一样根本不需要什么特殊处理. |
|
| 返回顶楼 | |
|
最后更新时间:2008-07-03
ray_linn 写道 quaff 写道 ray_linn 写道 quaff 写道 ray_linn 写道 用个convertor就可以了.
是converter不是convertor com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter里面已经有了,这种通用的转化器没必要自己写. converter和convertor在英文里是完全一样的好不好? 又来挖坟了 就算converter不是一个单词,xwork叫这个就是这个 就像http header的referer是referrer拼写错误一样 不要掩饰英文不好的事实。我原话说的是“用个convertor",而不是“用convertor" . to:LZ Enum是很特殊的,不能用 java.lang.Enum=.....来转换所有的,要每个Enum单独列出 package.enum=.... 不懂就不要误导别人 |
|
| 返回顶楼 | |
|
最后更新时间:2008-07-03
多谢二位兄弟,
我都试试, 等下来汇报结果。。 |
|
| 返回顶楼 | |
|
最后更新时间:2008-07-03
TrueColor 写道 多谢二位兄弟, 我都试试, 等下来汇报结果。。 把xwork升级到最新版本就行了,如果升级带来其他问题可以继续在这个帖子跟贴,我帮你解决. |
|
| 返回顶楼 | |
|
最后更新时间:2008-07-03
quaff 写道 不懂就不要误导别人
你不懂就闭嘴。 写上 <package>.Sex=com.opensymphony.xwork2.util.EnumTypeConverter key为Sex的name如:MALE,FEMALE. |
|
| 返回顶楼 | |
|
最后更新时间:2008-07-03
忘了一件事了。不知是否和我的enum类的代码是否有关,这是我的Sex代码,
public enum Sex { MALE, FEMALE, UNKNOWN; public String getValue() { return this.toString(); } } |
|
| 返回顶楼 | |
|
最后更新时间:2008-07-03
ray_linn 写道 quaff 写道 ray_linn 写道 quaff 写道 ray_linn 写道 用个convertor就可以了.
是converter不是convertor com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter里面已经有了,这种通用的转化器没必要自己写. converter和convertor在英文里是完全一样的好不好? 又来挖坟了 就算converter不是一个单词,xwork叫这个就是这个 就像http header的referer是referrer拼写错误一样 不要掩饰英文不好的事实。我原话说的是“用个convertor",而不是“用convertor" . to:LZ Enum是很特殊的,不能用 java.lang.Enum=.....来转换所有的,要每个Enum单独列出 package.enum=.... 兄弟,我试了, 在xwork-conversion.properties中这样写: com.mypackage.constant.Sex=com.opensymphony.xwork2.util.EnumTypeConverter 页面上的action?user.sex=MALE,还是设置不到action中的User 对象中.... |
|
| 返回顶楼 | |





