基于SSM 集成 Freemarker模板引擎的方法

2023-01-21 0 3,372

FreeMarker简介

FreeMarker是一个Java语言编写的模板引擎,它基于模板来生成文本输出。FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP。它不仅可以用作表现层的实现技术,而且还可以用于生成XML,JSP或Java 文等。
可以彻底的分离表现层和业务逻辑。
曾经在使用JSP 开发过程中发现在页面中大量的存在业务逻辑的代码,使得页面内容凌乱,在后期大量的修改维护过程中就变得非常困难

FreeMarker的原理就是:模板+数据模型=输出,模板只负责数据在页面中的表现,不涉及任何的逻辑代码,而所有的逻辑都是由数据模型来处理的。用户最终看到的输出是模板和数据模型合并后创建的。

背景

在前后端分离的大趋势下,项目开发过程中,应尽量减少前端和后台的依赖和耦合,前端和后台尽可能采用 ajax 进行交互;但是全站 ajax,不利于网站 SEO,所以引入模板引擎,尽量减少前端对后端的依赖;SSM 架构下一般采用 Freemarker,Spring Boot 架构下一般推荐采用 Thymeleaf 模板引擎;

SSM 集成 Freemarker

1、引入依赖

<!-- Freemarker 模板引擎 -->
<dependency>
    <groupId>org.freemarker</groupId>
    <artifactId>freemarker</artifactId>
    <version>2.3.29</version>
</dependency>

2、spring mvc 核心配置文件,spring-mvc.xml,添加相关配置;

<!-- freeMarker 视图解析器 -->
<bean id=\"viewResolverFtl\" class=\"org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver\">
<property name=\"viewClass\" value=\"org.springframework.web.servlet.view.freemarker.FreeMarkerView\"/>
<property name=\"contentType\" value=\"text/html; charset=utf-8\"/>
<property name=\"cache\" value=\"false\"/>
<property name=\"suffix\" value=\".ftl\"/>
<property name=\"order\" value=\"0\"/>
<property name=\"requestContextAttribute\" value=\"request\"/>
</bean>

<!-- freemarker 核心配置 -->
<bean id=\"freemarkerConfig\" class=\"org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer\">
<!--解析路径-->
<property name=\"templateLoaderPath\" value=\"/WEB-INF/view/\"></property>
<!-- 设置 FreeMarker 环境属性 -->
<property name=\"freemarkerSettings\">
    <props>
        <!--刷新模板的周期,单位为秒 -->
        <prop key=\"template_update_delay\">5</prop>
        <!--模板的编码格式 -->
        <prop key=\"default_encoding\">UTF-8</prop>
        <!-- 本地化设置 -->
        <prop key=\"locale\">UTF-8</prop>
        <prop key=\"datetime_format\">yyyy-MM-dd HH:mm:ss</prop>
        <prop key=\"time_format\">HH:mm:ss</prop>
        <prop key=\"number_format\">0.####</prop>
        <prop key=\"boolean_format\">true,false</prop>
        <prop key=\"whitespace_stripping\">true</prop>
        <prop key=\"tag_syntax\">auto_detect</prop>
        <prop key=\"url_escaping_charset\">UTF-8</prop>
    </props>
</property>
</bean>

2、Controller 中调用 调用模板,渲染页面效果;

@RequestMapping(value = \"/index\", method = RequestMethod.GET)
public String index(Model model){
    model.addAttribute(\"fm\",\"2020\");
    return \"index\";
}

调用模板引擎,跳转到 /WEB-INF/view/index.ftl,传递数据,渲染页面;

3、定义模板文件 命名为:index.ftl;

<!doctype html>
<html lang=\"en\">
    <head>
      <meta charset=\"UTF-8\">
      <title>首页</title>
    </head>
    <body>
        ${fm}
    </body>
</html>

:本文采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可, 转载请附上原文出处链接。
1、本站提供的源码不保证资源的完整性以及安全性,不附带任何技术服务!
2、本站提供的模板、软件工具等其他资源,均不包含技术服务,请大家谅解!
3、本站提供的资源仅供下载者参考学习,请勿用于任何商业用途,请24小时内删除!
4、如需商用,请购买正版,由于未及时购买正版发生的侵权行为,与本站无关。
5、本站部分资源存放于百度网盘或其他网盘中,请提前注册好百度网盘账号,下载安装百度网盘客户端或其他网盘客户端进行下载;
6、本站部分资源文件是经压缩后的,请下载后安装解压软件,推荐使用WinRAR和7-Zip解压软件。
7、如果本站提供的资源侵犯到了您的权益,请邮件联系: 442469558@qq.com 进行处理!

猪小侠源码-最新源码下载平台 Java教程 基于SSM 集成 Freemarker模板引擎的方法 http://www.20zxx.cn/463236/xuexijiaocheng/javajc.html

猪小侠源码,优质资源分享网

常见问题
  • 本站所有资源版权均属于原作者所有,均只能用于参考学习,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,建议提前注册好百度网盘账号,使用百度网盘客户端下载
查看详情

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务