Jsp 在类型列表中添加(字符串)的方法<;字符串>;不适用于参数(映射)
我实际上只是一个可视化的网页设计师,我通过从网上获取一些资源来进行一些功能编码。我真正需要做的就是从一个数组中通过jsp以html显示培训计划列表。我一直在搜索并尝试一些“方法”,我发现下面的代码是我认为最简单的方法Jsp 在类型列表中添加(字符串)的方法<;字符串>;不适用于参数(映射),jsp,jstl,Jsp,Jstl,我实际上只是一个可视化的网页设计师,我通过从网上获取一些资源来进行一些功能编码。我真正需要做的就是从一个数组中通过jsp以html显示培训计划列表。我一直在搜索并尝试一些“方法”,我发现下面的代码是我认为最简单的方法 <%@ page import="java.util.ArrayList" %> <%@ page import="java.util.List" %> <%@ page import="java.util.Map" %> <%@ page
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
List<String> list = new ArrayList<String>();
Map course1 = new HashMap();
course1.put("code", "ME101");
course1.put("desc", "Marine Engineering 101");
course1.put("sched", "June 1 - August 30, 2014");
course1.put("rsvd", "56");
list.add(course1);
Map course2 = new HashMap();
course2.put("code", "ME102");
course2.put("desc", "Marine Engineering 102");
course2.put("sched", "September 1 - November 31, 2014");
course2.put("rsvd", "25");
list.add(course2);
Map course3 = new HashMap();
course3.put("code", "CSM101");
course3.put("desc", "Certificate on Seamanship 101");
course3.put("sched", "June 1 - June 30, 2014");
course3.put("rsvd", "36");
list.add(course3);
pageContext.setAttribute("courses", list);
列表=新的ArrayList();
Map course1=新的HashMap();
课程1.put(“代码”、“ME101”);
课程1.put(“描述”,“海洋工程101”);
课程1.put(“附表”,“2014年6月1日至8月30日”);
课程1.put(“rsvd”,“56”);
列表。添加(课程1);
Map course2=新的HashMap();
课程2.put(“代码”,“ME102”);
课程2.put(“描述”,“海洋工程102”);
课程2.put(“附表”,“2014年9月1日至11月31日”);
课程2.put(“rsvd”,“25”);
列表。添加(课程2);
Map course3=新HashMap();
课程3.put(“代码”,“CSM101”);
课程3.put(“描述”,“航海技术证书101”);
课程3.put(“附表”,“2014年6月1日至6月30日”);
课程3.put(“rsvd”,“36”);
列表。添加(课程3);
setAttribute(“课程”,列表);
在html部分中,我有以下内容来显示值:
<c:forEach items="${courses}" var="current">
<tr>
<td><c:out value="${current.code}" /><td>
<td><c:out value="${current.desc}" /><td>
<td><c:out value="${current.sched}" /><td>
<td><c:out value="${current.rsvd}" /><td>
</tr>
</c:forEach>
问题是这些会产生错误
“类型列表中的方法add(String)不适用于
参数(映射)”
有人能帮我怎么做吗?您将列表定义为字符串列表:
List<String> list = new ArrayList<String>();
字符串列表只能接受字符串,不能接受映射。如果需要地图列表,则应将其定义为
List<Map> list = new ArrayList<Map>();
List List=new ArrayList();
请注意,地图本身应为强类型:
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
...
Map<String, String> course1 = new HashMap<String, String>();
course1.put("code", "ME101");
List List=new ArrayList();
...
Map course1=新的HashMap();
课程1.put(“代码”、“ME101”);
Wow,类型上的一点变化就成功了。谢谢!我想我需要读一些关于差异的书。
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
...
Map<String, String> course1 = new HashMap<String, String>();
course1.put("code", "ME101");