Freemarker使用注意事项

  1. 模板存放路径问题
    //通过以下这种方式只能获取resources目录下的模板文件
    FreeMarkerConfiguration.getConfiguration().getTemplate(templatePath);
    
    //通过以下方式,可以指定盘符的路径获取模板文件
    fileTemplateLoader = new FileTemplateLoader(new File(tmpPath));
    Configuration configuration = freeMarkerConfiguration.getConfiguration();
    configuration.setTemplateLoader(fileTemplateLoader);
    template = configuration.getTemplate(templateName);
  2. 模板数据模型问题

        freemarker模板包含多种参数,如String,List等,此时需要通过

Configuration.setObjectWrapper(new DefaultObjectWrapper(Configuration.VERSION_2_3_0));

        主动设置ObjectWrapper,使freemarker能够识别如Map<String,Object>这种数据结构的模  型,否则,通过以下这种方式直接绑定数据解析模板会出现类型转换错误(Object to String)

FreeMarkerTemplateUtils.processTemplateIntoString(template, map);
配置 FreemarkerSpring Boot 可以参考以下步骤: 1. 在 pom.xml 文件中加入以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency> ``` 2. 在 application.properties 文件中配置 Freemarker: ``` # freemarker spring.freemarker.template-loader-path=classpath:/templates/ spring.freemarker.suffix=.ftl ``` 其中,`spring.freemarker.template-loader-path` 指定了模板文件的路径,`spring.freemarker.suffix` 指定了模板文件的后缀。 3. 在代码中使用 Freemarker 渲染模板: ```java @Controller public class MyController { @Autowired private Configuration freemarkerConfig; @GetMapping("/hello") public String hello(Model model) throws Exception { Template template = freemarkerConfig.getTemplate("hello.ftl"); String result = FreeMarkerTemplateUtils.processTemplateIntoString(template, model); return "hello"; } } ``` 在上面的代码中,我们注入了 `Configuration` 类型的 `freemarkerConfig` 对象,在 `hello` 方法中,根据模板文件名称获取模板,然后使用 `FreeMarkerTemplateUtils.processTemplateIntoString` 方法渲染模板,并返回渲染结果。 4. 在模板文件中使用 Freemarker 语法: 例如,在 `hello.ftl` 文件中可以使用以下语法: ```html <html> <head> <title>Hello, ${name}!</title> </head> <body> <h1>Hello, ${name}!</h1> </body> </html> ``` 其中,`${name}` 表示获取模型数据中名为 `name` 的值。 以上就是在 Spring Boot 中配置并使用 Freemarker 的步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值