![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
Java servlet 将Map传到jsp中,通过<c:forEach >怎么将map中的值读取到?
servlet中的map,提交到JSP:Map<String,String>sParaTemp=newHashMap<String,String>();sParaTemp...
servlet中的map,提交到JSP:
Map<String, String> sParaTemp = new HashMap<String, String>();
sParaTemp.put("time", currentTime);
sParaTemp.put("count", count));
request.setAttribute("trademap", sParaTemp);
request.getRequestDispatcher("/order.jsp").forward(request,
response);
jsp:遍历读取:
<c:if test="${!empty trademap}">
<!-- 查询到的数据集不为空的情况 -->
<c:forEach items="${trademap}" var="sd">
<td><input size="30" style="border-style: none"name="a" value="${sd.time}" /></td>
这个${sd.time}",time报错:Property 'time' not found on type java.lang.String
到底该怎么取到map 中的值? 展开
Map<String, String> sParaTemp = new HashMap<String, String>();
sParaTemp.put("time", currentTime);
sParaTemp.put("count", count));
request.setAttribute("trademap", sParaTemp);
request.getRequestDispatcher("/order.jsp").forward(request,
response);
jsp:遍历读取:
<c:if test="${!empty trademap}">
<!-- 查询到的数据集不为空的情况 -->
<c:forEach items="${trademap}" var="sd">
<td><input size="30" style="border-style: none"name="a" value="${sd.time}" /></td>
这个${sd.time}",time报错:Property 'time' not found on type java.lang.String
到底该怎么取到map 中的值? 展开
6个回答
2016-02-02 · 百度知道合伙人官方认证企业
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
关注
![](https://wyw-base.cdn.bcebos.com/pc-content/follow.gif)
展开全部
Java servlet 将Map传到jsp中,用foreach获取map的值的方法:
以下是取值代码:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.util.*" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<%!
public static class TTT{
private String name;
public TTT(String name){
this.name = name;
}
public String getName(){
return name;
}
}
%>
<%
Map map = new LinkedHashMap();
map.put(new TTT("111"),"aaaaaa");
map.put(new TTT("222"),"bbbbbb");
request.setAttribute("map",map);
%>
<body>
<c:forEach items="${map}" var="item">
${item.key.name}-${item.value}<br/>
</c:forEach>
</body>
</html>
item内保存的是java.util.Map.Entry对象这个对象有getKey,setKey,getValue,setValue方法,这样就可以在forEach内部使用map的key和value了。
以下是取值代码:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.util.*" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<%!
public static class TTT{
private String name;
public TTT(String name){
this.name = name;
}
public String getName(){
return name;
}
}
%>
<%
Map map = new LinkedHashMap();
map.put(new TTT("111"),"aaaaaa");
map.put(new TTT("222"),"bbbbbb");
request.setAttribute("map",map);
%>
<body>
<c:forEach items="${map}" var="item">
${item.key.name}-${item.value}<br/>
</c:forEach>
</body>
</html>
item内保存的是java.util.Map.Entry对象这个对象有getKey,setKey,getValue,setValue方法,这样就可以在forEach内部使用map的key和value了。
展开全部
EL取map的值用中括号
${tradmap['time']}
假如你想遍历map所有的值,可以往request里面放入一个key的list
List<String> list = new ArrayList<String>();
list.add("time");
list.add("count");
request.setAttribute("list", list);
然后在页面遍历
<c:if test="${!empty trademap}">
<c:forEach items="${trademap}" var="sd">
<c:forEach items="${list }" var="keys">
${sd[keys]} <!-- 这就遍历出所有的value了 -->
</c:forEach>
</c:forEach>
</c:if>
追问
感觉大神来了,我能直接取我想要的值吗?不用遍历可以吗?直接把map,中的value取出来,string s = trademap.count.value;//伪代码。这种想法能实现吗?我就是想得到map中,指定key的value!怎么办?
追答
页面中取,就直接这样
${tradmap['count']} //这个结果就是123
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的MAP之前没有定义current time吧,如果是Date = newDate()获取的currentTime,先把currentTIme转化为字符串,再往里面传,put()方法里面一般都传的是字符串..在你的var后面加上 varStatus="status"
试试好了。。
试试好了。。
追问
我只是没贴出来,都写好了
追答
这么说吧,你的sParaTemp是一个HashMap对象,而HashMap没有time和count这两个属性.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
好像是用中括号,${sd["time"]},你试试看
追问
不对啊,你再看看我的需求,上面的回答,map中有很多键值对,我想取我要的那个key的value,比如map,我想得到123,将123 放在中,那么该怎么写?
追答
循环Map的keySet吧 然后用key的值获取value( ${map["key"]} )
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你改成${sd.value}看看行不行
更多追问追答
追问
这样写的话:就全部遍历出来了,可我想实现:这样,在我想要的地方显示我想的值应该怎么写?
追答
${sd.value} 这是取值
${sd.key} 这是取键
你是不是意思就是取里面的这个键?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询