日期:2014-05-18  浏览次数:20728 次

怎么用<c:forEach>取HashMap类型的值?
目前正在学着使用标签,
以下这段已经可以了,取的是ArrayList~
但是HaspMap取不出来了就,报错...

<%--   ###########   循环显示   ###########   --%>
<c:forEach   var= "books "   items= "${requestScope.LIST} ">
<tr   align= "center ">
<td   class=tablebody2   valign=middle   align=center   width= " "> ${books.id}
</td>
<td   class=tablebody1   valign=middle   width= " "   align= "left "> &nbsp;&nbsp; <a   href= "toProductDetail.do?id=${books.id} "> ${books.name} </a>
</td>
<td   class=tablebody2   valign=middle   align=center   width= " ">
${books.basePrice}
</td>
<td   class=tablebody1   valign=middle   align=center   width= " ">
<a   href= "addshopcart.do?id=${books.id} ">  
<img   border= "0 "   src= "images/car_new.gif "   width= "97 "   height= "18 ">   </a>
</td>
</tr>

</c:forEach>

怎么学习标签啊?到http://jakarta.apache.org/当什么呐?

------解决方案--------------------
<form method= "post " action= "update.do?id=${shopcar.id} " name= "f1 ">
------解决方案--------------------
"${shopcart.product.id} "===========> "${shopcart.id} "
------解决方案--------------------
晕,猜不到你的意思
------解决方案--------------------
你的HashMap是这样的结构,Map <Integer, Shopcart> shopcarts=new HashMap <Integer, Shopcart> ();
所以在 <c:forEach var= "shopcart " items= "${sessionScope.LIST} "> 中,你想取出Map中的key,就用${shopcart.key},Map中的value用${shopcart.value}。当然,若value中是个POJO的话,可以用${shopcart.value.id},${shopcart.value.name}等来取出POJO相应的属性。不过你的好像应该用
${shopcart.value.product.name}.因为你的product是shopcart的一个属性。只是大概看了一下你的代码,不知道说的清楚不清楚,希望LZ能看明白。
------解决方案--------------------
jstl标签、el语句、struts标签一般书上都有说
如果用struts做为自己的mvc框架的话,那建议你学学struts标签
可以看看 < <struts程序员查询辞典> >