springboot集成freemarker

一.静态资源:
1,默认情况下,Springboot会从classpath下的/static、/public、/resources、/META-INF/resources下加载静态资源;
2,可以通过修改spring.resources.staticLocations来修改静态资源加载地址;
3,因为应用是打成jar包,所以之前的src/main/webapp不会加载;
二.不推荐使用jsp的原因是因为springboot对jsp的支持不好
三.由于在内嵌的servlet容器中使用jsp会有一些问题,所以springboot建议使用第三方模板语言,推荐使用freemarker,velocity和thymeleaf;
以上几种模板页面默认从src/main/resources/templates加载;

四.freemarker的基本使用:
1,FreeMarker中的模型:hash(如map或自定义对象);scalars(存储的简单值);sequence(数组或者列表等可遍历对象);
2,FreeMarker模板中的内容分类:
1,插值;
2,FTL指令;
3,注释:<#-- -->
4,标准文本,除了以上三种,其他都是静态文本,原样输出;
3,插值的使用:
1,直接输出scalars; s o m e V a l u e 2 , 处 理 不 存 在 的 s c a l a r s 值 : {someValue} 2,处理不存在的scalars值: someValue2scalars{something!“nothing”}
3,输出hash中的属性: s o m e B e a n . s o m e V a l u e 4 , 输 出 h a s h 中 的 方 法 ; {someBean.someValue} 4,输出hash中的方法; someBean.someValue4hash{someBean.someMethod()}
5,处理不存在的hash调用: ( o b j . p r o p . s o m e t h i n g ) ! n o t h i n g 6 , 处 理 s c a l a r s 的 内 建 函 数 : {(obj.prop.something)!nothing} 6,处理scalars的内建函数: (obj.prop.something)!nothing6scalars{str?substring(2)}等
7.,常见的FTL指令:
1,<#if>…<#elseif>…<#else>…</#if>
2,<#list sequence as item>…</#list>

#include:引入一个模板;
#assign:在Freemarker上下文中创建一个变量并赋值
五.常用配置
template_update_delay=1 ##模版更新时间,这里配置是1秒更新一次,正式环境,模版不会改变,可以将这个值设很大,提高效率.就是被这个参数害死了.老是不更新.
locale=zh_CN ##中国
default_encoding=utf-8 ##编码utf8
url_escaping_charset=utf-8 ##url编码utf8
date_format=yyyy-MM-dd ##显示日期格式
time_format=HH:mm:Ss ##显示时间格式
datetime_format=yyyy-MM-dd ##显示日期格式
number_format=#0.##### ##数字显示格式hi.

#template_update_delay=1
datetime_format=yyyy-MM-dd HH:mm:ss
date_format=yyyy-MM-dd
time_format=HH:mm:ss
number_format=0.######;
boolean_format=true,false
auto_import="/common/index.ftl" as ui 自动引入
whitespace_stripping=true
default_encoding=UTF-8
tag_syntax=auto_detect
url_escaping_charset=UTF-8
六.SpringBoot中集成freemarker
1,引入spring-boot-starter-freemarker,自动引入freemarker和spring-context-support;

<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-freemarker</artifactId>
		</dependency>

(2)springboot提供的freemarker配置:

1,spring.freemarker.enabled=true:是否开启freemarker支持;
2,spring.freemarker.allow-request-override:是否允许request中的属性覆盖model中同名属性;默认false;
3,spring.freemarker.allow-session-override:是否允许session中的属性覆盖model中同名属性;默认false;
4,spring.freemarker.cache:是否支持模板缓存;默认false;
5,spring.freemarker.charset:模板编码
6,spring.freemarker.content-type=text/html:模板contenttype;
7,spring.freemarker.expose-request-attributes:是否开启request属性expose,默认false;
8,spring.freemarker.expose-session-attributes:是否开启session属性expose,默认false;
9,spring.freemarker.expose-spring-macro-helpers:是否开启spring的freemarker宏支持;默认为false;
10,spring.freemarker.prefer-file-system-access:默认为true,支持实时检查模板修改;
11,spring.freemarker.prefix:加载模板时候的前缀;
12,spring.freemarker.settings.*:直接配置freemarker参数
13,spring.freemarker.suffix:模板文件后缀;
14,spring.freemarker.template-loader-path=classpath:/templates/:模板加载地址
(3)代码
1.controller

@Controller
public class Hello {
    @RequestMapping("/hello1")
    public String hello(Model model){
      model.addAttribute("msg","hello,freemarker");
        return "hello1";
    }
}

2.可以手动配置

spring.freemarker.charset=UTF-8
spring.freemarker.suffix=.ftl
spring.freemarker.content-type=text/html; charset=utf-8
spring.freemarker.template-loader-path=classpath:/templates
spring.mvc.static-path-pattern=/static/**

3.启动项目(运行main方法)
4.访问页面
在这里插入图片描述

Spring Boot可以集成Freemarker作为视图格式,以便在Spring MVC中使用。为了创建一个Spring Boot Freemarker工程并测试模板,你需要执行以下步骤: 1. 创建一个测试工程,并在pom.xml文件中添加必要的依赖项。其中包括以下依赖项: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency> ``` 2. 创建一个Controller类,在这个类中将需要的数据添加到Map中,并返回模板文件的名称。例如: ``` @Controller public class HelloController { @GetMapping("/basic") public String test(Model model) { // 纯文本形式的参数 model.addAttribute("name", "freemarker"); // 实体类相关的参数 Student student = new Student(); student.setName("小明"); student.setAge(18); model.addAttribute("stu", student); return "01-basic"; } } ``` 3. 创建一个启动类,使用@SpringBootApplication注解标记,并在main方法中运行Spring Boot应用程序。例如: ``` @SpringBootApplication public class FreemarkerDemotApplication { public static void main(String[] args) { SpringApplication.run(FreemarkerDemotApplication.class, args); } } ``` 4. 运行测试,访问对应的URL来查看Freemarker模板渲染的结果。 以上是使用Spring Boot集成Freemarker的基本步骤。你可以根据具体的需求和业务逻辑进行相应的调整和配置。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Springboot集成Freemarker|超级详细,建议收藏](https://blog.csdn.net/heima005/article/details/129435750)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Springboot整合FreeMarker](https://blog.csdn.net/zxy15974062965/article/details/122818338)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值