有如下代码: JSONArray ds = (JSONArray) json.get("DS"); 其中ds的值是[{"Station_Name":"耿马国家基本气象站","Station_Id_C":"56946","SUM_PRE_Time_2020":"166"}, {"Station_Name":"临沧国家基本气象站","Station_Id_C":"56951","SUM_PRE_Time_2020":"95.4"}, {"Station_Name":"沧源","Station_Id_C":"56944","SUM_PRE_Time_2020":"260.8"}, {"Station_Name":"双江","Station_Id_C":"56950","SUM_PRE_Time_2020":"70.4"}] 如何结合freemarker动态生成html.将里面对应的Station_Id_C,SUM_PRE_Time_2020的值展示成一张表格 其中springboot该怎么写
时间: 2023-03-03 15:10:16 浏览: 153
要结合Freemarker动态生成HTML,可以先构造一个数据模型,将JSONArray中的数据转换为一个List<Map<String, Object>>,其中每个Map表示一行数据,包含"Station_Id_C"和"SUM_PRE_Time_2020"两个键对应的值。
在Spring Boot中,可以将数据模型放入Model对象中,传递给对应的模板文件进行渲染。假设你已经将JSONArray转换为了名为"dsList"的List<Map<String, Object>>,可以按照以下步骤进行操作:
1. 在Spring Boot项目中添加Freemarker的依赖(如果没有添加的话)。
2. 在项目中创建一个模板文件,比如说命名为"table.ftl"。在模板文件中定义一个HTML表格,使用Freemarker的语法动态生成表格中的内容。具体地,你可以遍历"dsList",使用${}表达式获取每个Map中的"Station_Id_C"和"SUM_PRE_Time_2020"键对应的值,将它们填入HTML表格中的对应单元格。
示例代码:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Table</title>
</head>
<body>
<table>
<thead>
<tr>
<th>Station_Id_C</th>
<th>SUM_PRE_Time_2020</th>
</tr>
</thead>
<tbody>
<#list dsList as data>
<tr>
<td>${data["Station_Id_C"]}</td>
<td>${data["SUM_PRE_Time_2020"]}</td>
</tr>
</#list>
</tbody>
</table>
</body>
</html>
```
3. 在Spring Boot项目中编写一个Controller,定义一个路由,将数据模型添加到Model对象中,再返回渲染后的HTML页面。
示例代码:
```java
@Controller
public class TableController {
@RequestMapping("/table")
public String table(Model model) {
// 假设你已经将JSONArray转换为了名为"dsList"的List<Map<String, Object>>
model.addAttribute("dsList", dsList);
return "table";
}
}
```
4. 在Spring Boot项目中配置Freemarker的相关参数,如模板路径等。在application.properties或application.yml文件中添加如下配置:
```yaml
spring:
freemarker:
template-loader-path: classpath:/templates
```
其中"template-loader-path"是模板文件的路径。
完成上述步骤后,在浏览器中访问http://localhost:8080/table,即可看到动态生成的HTML表格,其中包含了"Station_Id_C"和"SUM_PRE_Time_2020"两列数据。
阅读全文