JSP传递数组键值对Map或者List里面放List数组对象

莫欺少年穷 2011-08-10 07:48:35
我在做一个网站,有新闻系统,新闻类型有多个,例如国内,国外等等,每个类型有数量不等的新闻信息,我在Servlet里面查询到所有的类型,又根据类型查询到了所有的新闻信息,但是我实在无法将它保存了再传递到我的jsp页面里!request里面不能存取Map对象,List<List>对象也无法传递。求详细解说传递,纠结状态,痛苦不堪ing....
...全文
1342 46 打赏 收藏 转发到动态 举报
写回复
用AI写文章
46 条回复
切换为时间正序
请发表友善的回复…
发表回复
莫欺少年穷 2011-08-15
  • 打赏
  • 举报
回复
[Quote=引用 45 楼 zzzz3621 的回复:]
那啥,不用Map,用bean行不?
[/Quote]

bean是什么??我没学过啊!!!我搜下去了解下----
逍遥兮容与 2011-08-11
  • 打赏
  • 举报
回复
那啥,不用Map,用bean行不?
莫欺少年穷 2011-08-11
  • 打赏
  • 举报
回复
[Quote=引用 39 楼 softroad 的回复:]
我回答的也不少吧,拿分来。
[/Quote]

去那个帖子,补偿你20分。嘿嘿,谢谢你了,还帮我分析了怎么错的,太感谢了
莫欺少年穷 2011-08-11
  • 打赏
  • 举报
回复
[Quote=引用 41 楼 gsy999 的回复:]
引用 40 楼 notonlyforshe 的回复:
引用 37 楼 softroad 的回复:
LZ 我服你了

java.lang.ClassCastException: java.util.HashMap$KeySet cannot be cast to java.util.List

好好看看错误信息,再看看你key是什么,value是什么,不要乱转


嘿嘿,不好意思,……
[/Quote]

级别太低,散分太少,进来这,补偿散分-------------

嘿嘿,真是好幸福
gsy999 2011-08-11
  • 打赏
  • 举报
回复
[Quote=引用 40 楼 notonlyforshe 的回复:]
引用 37 楼 softroad 的回复:
LZ 我服你了

java.lang.ClassCastException: java.util.HashMap$KeySet cannot be cast to java.util.List

好好看看错误信息,再看看你key是什么,value是什么,不要乱转


嘿嘿,不好意思,这个,抓头下,,激动了,激动了。。
[/Quote]
LZ下次细心点。这么多人帮助你,你太幸福了。
莫欺少年穷 2011-08-11
  • 打赏
  • 举报
回复
[Quote=引用 37 楼 softroad 的回复:]
LZ 我服你了

java.lang.ClassCastException: java.util.HashMap$KeySet cannot be cast to java.util.List

好好看看错误信息,再看看你key是什么,value是什么,不要乱转
[/Quote]

嘿嘿,不好意思,这个,抓头下,,激动了,激动了。。
softroad 2011-08-11
  • 打赏
  • 举报
回复
我回答的也不少吧,拿分来。
莫欺少年穷 2011-08-11
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 lmx1989219 的回复:]
这是我项目里面的代码
你可以看看!



HTML code

<c:forEach var="map" items="${Maps}" >
<!-- 璐墿鍒楄〃寮€濮?-->
<tr class='td_no_bord'>
<t……
[/Quote]

我哭啊-------------当初用EL做,没做成,我现在测试直接用小脚本,依然不对,改成EL,居然成功了!!!----------------------蛋疼不已,想破头了我整,我都把那个Map用StringBuilder改成字符串数组传过来了,写的我这个心情,代码纠结死了。。。总算搞出来了!!!!谢谢大家了!!!!可能我当初测试的时候,是别的报错的才没有成功传递Map,总之现在对了,感谢大家了!!!!!参与有分,其中这哥们最多。结贴散分,Happy一下,大家过去,一并拿分
softroad 2011-08-11
  • 打赏
  • 举报
回复
LZ 我服你了

java.lang.ClassCastException: java.util.HashMap$KeySet cannot be cast to java.util.List

好好看看错误信息,再看看你key是什么,value是什么,不要乱转
soli11722984 2011-08-11
  • 打赏
  • 举报
回复
keySet

Set<K> keySet()

返回此映射中包含的键的 Set 视图。该 set 受映射支持,所以对映射的更改可在此 set 中反映出来,反之亦然。如果对该 set 进行迭代的同时修改了映射(通过迭代器自己的 remove 操作除外),则迭代结果是不确定的。set 支持元素移除,通过 Iterator.remove、Set.remove、removeAll、retainAll 和 clear 操作可从映射中移除相应的映射关系。它不支持 add 或 addAll 操作。

返回:
此映射中包含的键的 set 视图

soli11722984 2011-08-11
  • 打赏
  • 举报
回复
mapList.keySet()
你確定返回一個list???
莫欺少年穷 2011-08-11
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 lmx1989219 的回复:]
这是我项目里面的代码
你可以看看!



HTML code

<c:forEach var="map" items="${Maps}" >
<!-- 璐墿鍒楄〃寮€濮?-->
<tr class='td_no_bord'>
<t……
[/Quote]

辛苦了哥,我去测试下,我用的直接小脚本,我再用EL测试下,那个标签我加了的。小脚本不行,EL肯定也不行吧---
莫欺少年穷 2011-08-11
  • 打赏
  • 举报
回复
[Quote=引用 31 楼 gsy999 的回复:]
引用 30 楼 gsy999 的回复:
<%
Map<k,v> users = (List<k,v>)request.getAttribute("users");
%>

错了,是:
<%
Map<k,v> users = (Map<k,v>)request.getAttribute("users");
%>
[/Quote]

这样转是不报错,但是users里面没数据,取不出来我们想要的key或者values的
莫欺少年穷 2011-08-11
  • 打赏
  • 举报
回复
NewsServlet页面数据
NewsBiz nb = new NewsBiz();
String oprate = request.getParameter("oprate");
Map<NewsType,List<News>> mapList = new HashMap<NewsType, List<News>>();
if (oprate.equals("showNewsList")) {
List<NewsType> listNewsType = nb.showNewsType();
for (NewsType newsType : listNewsType) {
List<News> listNews = new ArrayList<News>();
Condition c1 = new Condition();
c1.setPropertyName("id");
c1.setPropertyVlaue(newsType.getId());
c1.setCompare(Compare.EQ);
c1.setFetch("newsType");
c1.setFetch("admin");
Condition c2 = new Condition();
c2.setOrder(Order.DESC);
c2.setPropertyName("publishTime");
listNews = nb.showNewsByNewsTypeId(c1, c2);
mapList.put(newsType, listNews);
}
request.setAttribute("mapList", mapList);
//if(mapList!=null){
// for (NewsType nt : mapList.keySet()) {
// System.out.println(nt.getName());
// }
//}这个循环验证了mapList不为空,且成功打印每个key
request.setAttribute("listNewsType", listNewsType);
request.getRequestDispatcher("news/index.jsp").forward(request, response);
}
<!-- 以上无错。 -->
news/index.jsp页面数据
<%
Map<NewsType, List<News>> mapList = (Map<NewsType, List<News>>) request
.getAttribute("mapList");
for (int i = 0; i < mapList.size(); i++) {
List<NewsType> newsTypeList = (List<NewsType>) mapList.keySet();
for (NewsType newsType : newsTypeList) {
if (newsType != null)
System.out.println(newsType.getName());
}
}
%>

java.lang.ClassCastException: java.util.HashMap$KeySet cannot be cast to java.util.List
-------------------------------------------------

就是类型无法转换- -
gsy999 2011-08-11
  • 打赏
  • 举报
回复
[Quote=引用 30 楼 gsy999 的回复:]
<%
Map<k,v> users = (List<k,v>)request.getAttribute("users");
%>
[/Quote]
错了,是:
<%
Map<k,v> users = (Map<k,v>)request.getAttribute("users");
%>
gsy999 2011-08-11
  • 打赏
  • 举报
回复

<%
Map<k,v> users = (List<k,v>)request.getAttribute("users");
%>
  • 打赏
  • 举报
回复
这是我项目里面的代码
你可以看看!


<c:forEach var="map" items="${Maps}" >
<!-- 璐墿鍒楄〃寮€濮?-->
<tr class='td_no_bord'>
<td style='display: none'>
9317290
</td>
<td class="buy_td_6">
<span class="objhide"><img /> </span>
</td>
<td>
<a href="#">${map.value.p.product_name}</a>
</td>
<td class="buy_td_5">
<span class="c_gray">${map.value.p.fixed_price}</span>
</td>
<td class="buy_td_4">
  
<span>锟?{map.value.p.dang_price}</span>
</td>
<td class="buy_td_1">
  ${map.value.pnum}
</td>

<td >
<input id="in${map.key}" class="del_num" type="text" size="3" maxlength="4" name="num" value=""/>
<a href="javascript:;"
onclick="location='update.do?id=${map.key}&num='+ document.getElementById('in${map.key}').value;">鍙樻洿</a>
</td>
<td>
<a href="delete.do?id=${map.key}">鍒犻櫎</a>
</td>
</tr>
</c:forEach>
<!-- 璐墿鍒楄〃缁撴潫 -->
  • 打赏
  • 举报
回复
用过标签吗?先在页面导入标签库
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<c:foreach item="${要取的map}" value="引用(随便写)">

引用.key.对象.属性<br/>
引用.value.对象.属性

</c:foreach >

这样不会出错的!
gsy999 2011-08-11
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 notonlyforshe 的回复:]
引用 22 楼 lmx1989219 的回复:
这就是jsp页面获取map的传统方法:

<%
Map xx = (Map)request.getAttribute("map");//这样强转不就行了!
out.print(xx);//不信你试试看,看打印出来东西不(如果没有就是你后台的代码问题)
%>

(Map)request.getAttribute("map")
……
[/Quote]
强制转换的时候,Map是不是有泛型的约束啊?
加载更多回复(26)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧