论坛首页 Java企业应用论坛

如何针对list中的Object进行类型转换

浏览 5624 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-10-09  
需求:从数据库中得到可用的用户类型列表放置在jsp页面的下拉列表框内,选择某个item后提交,action要得到所选item对应的对象(或者该对象的一个id属性的value)
从数据库得到的用户类型以列表types的形式放置在session中
<ww:select label="%{getText('type')}" list="#session['types']" name="type" emptyOption="true" listValue="name" />

我写了一个针对Type(有两个属性,name和id)的类型转换,如下:
public Object convertValue(Map arg0, Object arg1, Class arg2) {
		if (arg2 == DictionaryDataDTO.class) {
			String socailType = ((String[]) arg1)[0];
			if (socailType == null || socailType.trim().equals("")) {
				return null;
			}
			DictionaryDataDTO dataDTO = new DictionaryDataDTO();
			dataDTO.setId(Long.parseLong(socailType));
			return dataDTO;

		} else if (arg2 == String.class) {
			DictionaryDataDTO dataDTO = (DictionaryDataDTO) arg1;
			if (dataDTO == null) {
				return "";
			}
			return dataDTO.getName();
		}
		return null;
	}


调试时发现else if (arg2 == String.class)分支一直没有被调用,而选择下拉列表框某项后这里得到的arg1并不是我想要得id值或者name的值

请问如何解决,谢谢赐教

sunfy
   发表时间:2006-10-09  
我记得  好像从画面上传过来的  都是String类型  通过类型来判断 本身这个做法好像就有问题
你不就是要得到对应的值么   直接去拿他select的值  然后从session中取不就可以了  反正你已经放在session里了
0 请登录后投票
   发表时间:2006-10-09  
很奇怪的设计方法....
0 请登录后投票
   发表时间:2006-10-09  
据我所知 webwork的select标签支持 listKey="id" listValue="name"
0 请登录后投票
   发表时间:2006-10-09  
初学 写道
据我所知 webwork的select标签支持 listKey="id" listValue="name"

的确可以,谢谢.
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics