ftl读取map里面的值

本文探讨了在使用Freemarker模板引擎时,如何有效传递多个值到前端的方法。通过将数据存储在Map中,可以灵活地处理单个或多个集合对象,并在前端正确读取这些数据。文章详细解释了后台如何设置Map的键值对,以及前台如何应用正确的语法来获取数据。
摘要由CSDN通过智能技术生成

最近在使用freemarker的时候,发现传值需要传多个值,于是将值存到了集合里面,但是存到了map里面就需要调用map里的键来读取了。
后台:
在这里插入图片描述
因为这里的map里面有两个键值对,分别是data和sum
data里面存的是集合对象,sum存的是数量
前台:
在这里插入图片描述
因为对象是多个集合对象的所以需要集合来读取,但是我们看不是多个的直接打.调用,而多个的需要用list语法来读取

将Excel(.xlsx)文件转换为FreeMarker(FTL)模板通常需要两步操作:首先读取Excel数据,然后将这些数据写入FTL文件以便动态渲染。以下是使用Java的一个简化示例,使用Apache POI处理Excel和FreeMarker库来完成这个过程: ```java import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.velocity.app.VelocityEngine; import freemarker.template.Configuration; import java.io.*; // 1. 读取Excel文件 public void excelToFtl(String inputXlsxPath, String outputFtlPath) throws IOException { FileInputStream inputStream = new FileInputStream(inputXlsxPath); Workbook workbook = new XSSFWorkbook(inputStream); // 从工作簿获取第一个sheet Sheet sheet = workbook.getSheetAt(0); // 2. 创建Velocity引擎和FreeMarker配置 VelocityEngine velocityEngine = new VelocityEngine(); Configuration config = new Configuration(Configuration.VERSION_2_3_24); config.setDirectoryForTemplateLoading(new File("/path/to/templates")); // 指定FTL模板目录 // 3. 遍历Excel数据并生成FTL字符串 try (BufferedWriter writer = new BufferedWriter(new FileWriter(outputFtlPath))) { for (Row row : sheet) { Map<String, Object> data = new HashMap<>(); for (int i = 0; i < row.getLastCellNum(); i++) { Cell cell = row.getCell(i); switch (cell.getCellType()) { // 根据单元格类型处理数据 case STRING: data.put(cell.getStringCellValue(), cell.getStringCellValue()); break; // 其他数据类型如Integer, Date等,类似处理 } } String ftlContent = config.getTemplate("template.ftl").render(data); // 使用模板并注入数据 writer.write(ftlContent); } } // 关闭资源 workbook.close(); inputStream.close(); }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值