Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsp 在类型列表中添加(字符串)的方法<;字符串>;不适用于参数(映射)_Jsp_Jstl - Fatal编程技术网

Jsp 在类型列表中添加(字符串)的方法<;字符串>;不适用于参数(映射)

Jsp 在类型列表中添加(字符串)的方法<;字符串>;不适用于参数(映射),jsp,jstl,Jsp,Jstl,我实际上只是一个可视化的网页设计师,我通过从网上获取一些资源来进行一些功能编码。我真正需要做的就是从一个数组中通过jsp以html显示培训计划列表。我一直在搜索并尝试一些“方法”,我发现下面的代码是我认为最简单的方法 <%@ page import="java.util.ArrayList" %> <%@ page import="java.util.List" %> <%@ page import="java.util.Map" %> <%@ page

我实际上只是一个可视化的网页设计师,我通过从网上获取一些资源来进行一些功能编码。我真正需要做的就是从一个数组中通过jsp以html显示培训计划列表。我一直在搜索并尝试一些“方法”,我发现下面的代码是我认为最简单的方法

<%@ 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");