java 拼接 html_JAVA集成Freemarker生成静态html过程解析

本文介绍了如何在Springboot中集成Freemarker来生成静态HTML文件。首先引入Freemarker依赖,然后配置application.properties,接着创建FTL模板文件。在Controller中设置模型数据并返回模板名称。最后,通过工具类生成HTML静态文件。此外,还简单提及了SpringMVC集成Freemarker的配置和调用方式。
摘要由CSDN通过智能技术生成

Springboot

1.引入Freemarker jar包

org.springframework.boot

spring-boot-starter-freemarker

2.配置application.properties

### freemarker

spring.freemarker.templateLoaderPath=classpath:/templates/

spring.freemarker.suffix=.ftl

spring.freemarker.charset=UTF-8

spring.freemarker.request-context-attribute=request

spring.freemarker.settings.number_format=0.##########

3.创建ftl文件

0d878fd01784d65500a1627949acb2ac.png

在resource文件下新增文件夹templates,在templates文件夹下存放ftl文件,例如:

FreeMarker

Simple project

${key}

4.新建controller调用方法

@SuppressWarnings("unchecked")

@RequestMapping(value="/test",method=RequestMethod.GET)

public String test(Model model,HttpServletRequest request) {

model.addAttribute("key","test project");

return "test";

}

0e2b975d3afa27b3968191d045708224.png

5.生成html静态文件

使用工具类:

/**

* @param modeName 模板名称

* @param targetFileName 生成后的HTML名称

* @param params 传入模板的参数

* @Author: zy

* @Date: 2020-6-4 09:39:47

* @Description:生成静态页面

*/

public void createHtmlByMode(String modeName, String targetFileName, Map params) {

Writer out = null;

// 找到服务器缓存目录,可以自己指定目录

String folder = PropertisUtil.getApplicationProperties("healthReport.logs.urls") + targetFileName;

// 通过匹配路径格式拼接完整生成路径

String outFile = folder;

try {

File file = new File(outFile);

// 生成空HTML文件

if (!file.exists()) {

file.createNewFile();

}

// 创建模版对象

Template template = cfg.getTemplate(modeName);

// 设置输出流

out = new OutputStreamWriter(new FileOutputStream(file), "UTF-8");// 设置编码 UTF-8

// 模版数据插入参数,通过输出流插入到HTML中

template.process(params, out);

} catch (Exception e) {

e.printStackTrace();

} finally {

if (null != out) {

try {

out.flush();

out.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

修改controller中的方法:

@SuppressWarnings("unchecked")

@RequestMapping(value="/test",method=RequestMethod.GET)

public String test(Model model,HttpServletRequest request) {

model.addAttribute("key","test project");

//生成静态文件

Map param=new HashMap();

param.put("key", "我是被生成的静态文件");

createHtmlByMode("test.ftl","test.html",param);

return "test";

}

实现效果(我这里默认保存到d:/testlogs):

8377ec1cd1e5834be014a65b0c4bec76.png

31e6a9bd13947a3f8972b14447d62522.png

Springmvc(和springboot大致相同,此处只留下配置)

1.引入Freemarker jar包

org.springframework

spring-context-support

3.2.4.RELEASE

org.freemarker

freemarker

2.3.25-incubating

2.springmvc配置

class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">

1

zh_CN

yyyy-MM-dd

yyyy-MM-dd

#.##

class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">

3.调用方式

/**返回模板信息*/

@SuppressWarnings("unchecked")

@RequestMapping(value="/test",method={RequestMethod.GET})

public ModelAndView test(HttpServletRequest request) {

ModelAndView mv = new ModelAndView();

//设置参数

mv.addObject("key", "测试freemarker");

//配置模板

mv.setViewName("test");

return mv;

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值