关于Java集合类型Map的使用经验

Service写了个方法:
	public Map getAlbumNamesByOwnerID(Integer ownerID)
{
Map albumNamesMap=new HashMap();

List result=albumDAO.findByAlbumOwnerId((ownerID));

for(Iterator it=result.iterator();it.hasNext();)
{
CFIS_Album album=(CFIS_Album)it.next();
albumNamesMap.put(album.getAlbumName(),album.getAlbumId());
}
return albumNamesMap;
}


Action的方法:
		Iterator it =albumService.getAlbumNamesByOwnerID(ownerID).entrySet().iterator();
/*
奇怪的是,下面这句需要强制转换,但得到的Map类型却上面.entrySet()的方法,要像上面那样直接用.entrySet()方法又可以;而且得到的这个map对象不可以直接返回到jsp页面使用,必须用迭代器把Map重新取出来再放到一个Map才可以使用,可能是前面没指定泛型的原因
Map albumNamesMap=(Map)albumService.getAlbumNamesByOwnerID(ownerID);
*/

System.out.println("Map~~~~~~~~~~~~~~~~~~~~");
Map albumNamesMap=new HashMap();
while(it.hasNext())
{
Entry entry = (Entry)it.next() ;
albumNamesMap.put(entry.getKey(),entry.getValue());
}
request.setAttribute("albumNamesMap", albumNamesMap);



这样JSP页面就可以直接使用这个对象了,key是固有属性
			选择相册:<html:select property="albumID" size="1">
<logic:iterate id="albumName" name="albumNamesMap">
<html:option value="1"><bean:write name="albumName" property="key" /></html:option>
</logic:iterate>
</html:select>



==================================================================

后来Q群的711教me使用泛型,就不用强制类型转换了,并可以直接返回map对象,在此thanks again

	public Map getAlbumNamesByOwnerID(Integer ownerID)
{
Map albumNamesMap=new HashMap();

List<CFIS_Album> result=albumDAO.findByAlbumOwnerId((ownerID));
for(CFIS_Album b: result)
{
albumNamesMap.put(b.getAlbumName(), b.getAlbumId());
}
return albumNamesMap;
}


Action里直接就可以把Map对象返回,不用强制类型转换
		Map albumNamesMap=albumService.getAlbumNamesByOwnerID(ownerID);
request.setAttribute("albumNamesMap", albumNamesMap);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值