假设JSP页面中有以下代码: <% List<Map<String,String>> list = new ArrayList<Map<String,String>>(); Map<String,String> m1=new HashMap<String,String>(); m1.put("username", "Tony"); m1.put("age","40"); list.add(m1); Map<String,String> m2=new HashMap<String,String>(); m2.put("username", "Peter"); m2.put("age","23"); list.add(m2); request.setAttribute("list",list); %> 使用EL和JSTL遍历List集合对象中所有元素并输出。本程序所使用的JSTL核心标签库的uri为http://java.sun.com/jsp/jstl/core. 请将下面的程序片段补充完整。 <%@ taglib prefix="c" uri="__________" %> <c:forEach __________ ="__________" var="user"> Username:__________ Age:__________ <br> </c:forEach>
时间: 2024-04-27 18:24:48 浏览: 7
< taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:forEach items="${list}" var="user">
Username: ${user.username}
Age: ${user.age}
<br>
</c:forEach>
相关问题
用list<map>将数据库信息展示在前端
好的,以下是一个使用`List<Map>`将数据库信息展示在前端的示例Java代码:
```java
// 定义一个获取数据库中所有信息的方法
public List<Map<String, Object>> getAllData() {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
List<Map<String, Object>> dataList = new ArrayList<>();
try {
// 获取数据库连接
conn = DriverManager.getConnection(DB_URL, USER, PASS);
// 执行查询语句
stmt = conn.createStatement();
String sql = "SELECT * FROM table_name";
rs = stmt.executeQuery(sql);
// 处理结果集
ResultSetMetaData metaData = rs.getMetaData();
int columnCount = metaData.getColumnCount();
while (rs.next()) {
Map<String, Object> dataMap = new HashMap<>();
for (int i = 1; i <= columnCount; i++) {
dataMap.put(metaData.getColumnName(i), rs.getObject(i));
}
dataList.add(dataMap);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 关闭资源
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
return dataList;
}
```
在这个方法中,我们通过执行查询语句获取数据库中的所有数据,并将结果保存在一个`List<Map>`中。每个`Map`对象表示一条数据,其中`Map`的key表示列名,value表示对应的值。
接下来,我们将这个`List<Map>`传递给前端页面进行展示。以下是一个简单的JSP页面示例,在这个页面中,我们使用JSTL标签库来遍历`List<Map>`,并将每个`Map`中的数据展示出来:
```jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<title>Database Data</title>
</head>
<body>
<table>
<thead>
<tr>
<th>Column 1</th>
<th>Column 2</th>
<th>Column 3</th>
</tr>
</thead>
<tbody>
<c:forEach var="data" items="${dataList}">
<tr>
<td>${data.column1}</td>
<td>${data.column2}</td>
<td>${data.column3}</td>
</tr>
</c:forEach>
</tbody>
</table>
</body>
</html>
```
在这个JSP页面中,我们使用`<c:forEach>`标签来遍历`List<Map>`中的每个`Map`对象,并使用`${data.key}`的方式来获取每个key对应的值。这样就可以将数据库中的数据展示在前端页面上了。
@RequestMapping("/echarts") public void echarts(HttpServletRequest request, HttpServletResponse response) { List<Integer> list = commentMapper.getAllList(); Map<String, Integer> nummap = new HashMap<>(); ArrayList<Map<String, String>> alist = new ArrayList<>(); for (Integer i : list) { String s = i.toString() + "星"; if (nummap.containsKey(s)) { nummap.put(s, nummap.get(s) + 1); } else { nummap.put(s, 1); } } for(String key:nummap.keySet()){ HashMap<String,String> hmap = new HashMap<>(); hmap.put("name",key); hmap.put("value",nummap.get(key).toString()); alist.add(hmap); } // Map<Integer,String> tlist = new HashMap<>(); // for(String key:nummap.keySet()){ // tlist.put(nummap.get(key),key); // } request.setAttribute("tlist", JSONObject.toJSONString(alist)); System.out.println(alist); try { request.getRequestDispatcher("/echarts.jsp").forward(request, response); } catch (ServletException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
这是一个使用 Spring MVC 框架开发的 Web 应用中的 Controller 类中的方法。该方法的作用是从数据库中查询评论的评分,并将评分进行统计、分类,最后将统计结果以 JSON 格式返回给前端页面,用于绘制 Echarts 图表。其中 @RequestMapping("/echarts") 注解表示该方法处理以 "/echarts" 结尾的请求。具体实现中,需要使用 MyBatis 的 Mapper 接口查询数据库,然后将评分进行统计,分类,最后封装成一个 ArrayList<Map<String, String>> 对象,该对象中的键值对表示每个评分对应的评论数量。最后,使用 request.setAttribute 方法将该对象以 JSON 格式存储在 request 中,然后转发到 echarts.jsp 页面进行图表的渲染。