springboot中使用freemarker模板引擎生成html字符串时出现路径错误的解决方案


ClassTemplateLoader loader =   new ClassTemplateLoader(this.getClass().getClassLoader(), "ftl");

  /**
     * 生成HTML字符串
     *
     * @param filePath 请求路径
     * @param fileName 模板名称
     * @param data     模板数据
     * @return HTML字符串
     */
    public static String genarateHtml(ClassTemplateLoader filePath, String fileName, Map<String, String> data) {

        if (data == null || data.isEmpty()) {
            return "";
        }
        Configuration configuration = new Configuration(Configuration.VERSION_2_3_21);
        //模板数据
        Map<String, Object> rootMap = new HashMap<>(1);
        List<Map<String, String>> pageAll = new ArrayList<>();
        pageAll.add(data);
        rootMap.put("pageAll", pageAll);
        //模板路径
        //String basePath = iRequest.getAttribute(SyncConstant.BASE_PATH) + SyncConstant.FTL_PATH;
        //String basePath = Thread.currentThread().getContextClassLoader().getResource("").toString().replace("file:/", "").replace("/WEB-INF/classes/", "") + SyncConstant.FTL_PATH;

        //返回结果
        String result = null;
        StringWriter stringWriter = new StringWriter();

        try {
            configuration.setTemplateLoader(filePath);
            configuration.setDefaultEncoding(Constants.ENCODED_UTF_8);
            Template template = configuration.getTemplate(fileName);
            template.setEncoding(Constants.ENCODED_UTF_8);
            template.process(rootMap, stringWriter);
            result = stringWriter.toString();
            stringWriter.flush();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (TemplateException e) {
            e.printStackTrace();
        } finally {
            close(stringWriter);

        }
        System.out.println("生成的html"+result);
        return result;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值