所有例子在SpringBoot框架中实现
Hello World
- 在pom中添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
- 在application.properties添加以下配置(也可以不写)(用于html结尾文件的渲染)
#freemarker config
spring.freemarker.cache=false
spring.freemarker.checkTemplateLocation=true
spring.freemarker.contentType=text/html
spring.freemarker.suffix=.html
spring.freemarker.templateEncoding=UTF-8
spring.freemarker.templateLoaderPath=classpath:/templates/
- 在resources\templates下面添加一个文件Hello.ftl
- 在Hello.ftl中添加以下内容
<h1>Hello World!</h1>
- 在Controller层的一个HelloController中添加以下内容
@Controller
@Slf4j
public class HelloController {
@GetMapping("/index")
public ModelAndView index() {
return new ModelAndView("hello", null);
}
}
- 启动springboot,在网页上输入127.0.0.1:8080/index
- 完成
Spring整合freemarker
- 在pom中添加依赖
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.26-incubating</version>
</dependency>
- 在spring-servlet.xml的beans下添加配置
<bean id="freemarkerConfig"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath" value="classpath:/" />
<property name="freemarkerSettings">
<props>
<!-- 设置标签类型 两种:{}和<>。{}这种标记解析要快些 -->
<prop key="tag_syntax">auto_detect</prop>
<!-- 检查模板更新时间间隔,默认 5s -->
<prop key="template_update_delay">1</prop>
<prop key="default_encoding">UTF-8</prop>
<prop key="url_escaping_charset">UTF-8</prop>
<prop key="locale">zh_CN</prop>
<prop key="boolean_format">true,false</prop>
<!-- 时间格式化 -->
<prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop>
<prop key="date_format">yyyy-MM-dd</prop>
<prop key="time_format">HH:mm:ss</prop>
<prop key="number_format">0.##########</prop>
<!-- 去掉空格 -->
<prop key="whitespace_stripping">true</prop>
<prop key="auto_import">/WEB-INF/ftl/spring.ftl as s</prop>
<prop key="classic_compatible">true</prop>
<prop key="template_exception_handler">ignore</prop>
</props>
</property>
<property name="freemarkerVariables">
<map>
<entry key="sortSalaryDirec" value-ref="sortSalaryDirectiveModel"/>
</map>
</property>
</bean>
也可以使用另外一种配置方式
<bean id="freemarkerConfig"
class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="location" value="classpath:freemarker.properties" />
</property>
</bean>
freemarker.properties里的内容我就不写了
- 在spring-mvc.xml的beans下添加配置
<!-- 针对freemarker的视图配置 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="cache" value="true" />
<property name="prefix" value="" />
<property name="suffix" value=".ftl" />
<property name="contentType" value="text/html;charset=UTF-8"></property>
<property name="requestContextAttribute" value="request" />
<property name="exposeSpringMacroHelpers" value="true" />
<property name="exposeRequestAttributes" value="true" />
<property name="exposeSessionAttributes" value="true" />
</bean>
- 整合完毕