springmvc整合freemarker配置的详细步骤

下面是springmvc整合freemarker配置的详细步骤:

1.添加maven依赖

<dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-webmvc</artifactId>
   <version>5.2.9.RELEASE</version>
</dependency>
<dependency>
   <groupId>org.freemarker</groupId>
   <artifactId>freemarker</artifactId>
   <version>2.3.31</version>
</dependency>

2.配置springmvc

在springmvc配置文件中添加如下配置:

<!-- 开启注解支持 -->
<mvc:annotation-driven/>

<!-- 视图解析器 -->
<bean id="freeMarkerViewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
   <property name="contentType" value="text/html;charset=UTF-8"/>
   <property name="prefix" value="/WEB-INF/views/"/>
   <property name="suffix" value=".ftl"/>
</bean>

<!-- 模板配置 -->
<bean id="freeMarkerConfigurer" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
   <property name="templateLoaderPath" value="/WEB-INF/views/"/>
   <property name="defaultEncoding" value="UTF-8"/>
   <property name="freemarkerSettings">
       <props>
           <prop key="template_update_delay">0</prop>
           <prop key="default_encoding">UTF-8</prop>
           <prop key="url_escaping_charset">UTF-8</prop>
           <prop key="tag_syntax">auto_detect</prop>
           <prop key="whitespace_stripping">true</prop>
           <prop key="classic_compatible">true</prop>
       </props>
   </property>
</bean>

3.创建Controller

创建一个Controller类,添加如下注解:

@Controller
public class MainController {

   @RequestMapping(value = "/", method = RequestMethod.GET)
   public ModelAndView home() {
       ModelAndView mav = new ModelAndView();
       mav.setViewName("index");
       mav.addObject("greeting", "Hello World");
       return mav;
   }
}

4.编写FreeMarker模板

在/WEB-INF/views/目录下创建index.ftl文件,添加如下内容:

<!DOCTYPE html>
<html>
<head>
   <title>SpringMVC and FreeMarker Integration</title>
</head>
<body>
   <h2>${greeting}</h2>
</body>
</html>

5.运行应用程序

现在,我们已经完成了整合,可以运行应用程序并在浏览器中输入URL http://localhost:8080/,即可看到输出的“Hello World”消息。

下面给出另外一种示例,其中使用了Freemarker的一些高级特性:

6.Freemarker模板继承

base.ftl:

<!DOCTYPE html>
<html>
<head>
   <meta charset="UTF-8">
   <title>${page.title}</title>
   <link rel="stylesheet" href="${page.css}">
   <script src="${page.js}"></script>
</head>
<body>
   <header>
       <h1>My Site</h1>
   </header>
   <nav>
       <ul>
           <li><a href="#">Home</a></li>
           <li><a href="#">Blog</a></li>
           <li><a href="#">About</a></li>
           <li><a href="#">Contact</a></li>
       </ul>
   </nav>
   <article>
       <!-- 子模板在这里添加内容 -->
       <#nested/>
   </article>
   <footer>
       &copy; 2021 My Site
   </footer>
</body>
</html>

index.ftl:

<#import "base.ftl" as layout>

<#macro pageTitle>
   Home
</#macro>

<#macro content>
   <h2>Welcome to My Site</h2>
   <p>This is the home page of my site.</p>
</#macro>

<@layout.page>
   <@layout.content/>
</@layout.page>

使用Freemarker标签:

<#if accountList?size gt 0>
   <table>
       <thead>
           <tr>
               <th>ID</th>
               <th>Name</th>
               <th>Balance</th>
           </tr>
       </thead>
       <tbody>
           <#list accountList as account>
               <tr>
                   <td>${account.id}</td>
                   <td>${account.name}</td>
                   <td>${account.balance}</td>
               </tr>
           </#list>
       </tbody>
   </table>
<#else>
   <p>No accounts found.</p>
</#if>

这是使用Freemarker标签的示例,其中<#if>和<#list>标签用于条件判断和迭代列表等操作。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:springmvc整合freemarker配置的详细步骤 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • java实现将字符串中首字母转换成大写,其它全部转换成小写的方法示例

    要实现将字符串中首字母转换成大写,其它全部转换成小写,可以采用如下两种方法。 方法一:使用String的toUpperCase和toLowerCase方法 首先先将字符串全部转换成小写,这样后面才能将首字母转换成大写 然后取出字符串的第一个字符,将其转换成大写,这样就实现了将首字母转换成大写 最后将第一步转换成小写的部分和第二步转换成大写的部分拼接起来,就实…

    Java 2023年5月27日
    00
  • 详解Java中的延时队列 DelayQueue

    详解Java中的延时队列 DelayQueue 概述 DelayQueue是Java中的一个实现了Delayed的队列,它按照剩余时间从少到多的顺序对元素进行排序,每个元素都有一个过期时间,只有过期的元素才能被取出。 延时队列的实现 延时队列的实现需要实现Delayed接口,并重写getDelay()方法和compareTo()方法。 public inte…

    Java 2023年5月26日
    00
  • springboot maven 打包插件介绍及注意事项说明

    Spring Boot Maven打包插件介绍 Spring Boot使用了Maven作为构建工具,通过Maven进行项目的编译、依赖管理和打包部署等操作,其中Maven的打包插件在Spring Boot中有着非常重要的作用。 Maven的打包插件主要用于将项目打成可执行的JAR或WAR包,Spring Boot将其进一步封装为了一些特定的插件,以适应Spr…

    Java 2023年6月2日
    00
  • Java多线程之显示锁和内置锁总结详解

    Java多线程之显示锁和内置锁总结详解 前言 随着现代计算机的发展,CPU的速度和核心数量逐渐增加,让多线程编程变得越来越重要。Java作为一门支持多线程的语言,在多线程编程方面也提供了一系列的API和机制。本文将重点介绍Java中的两种锁:显示锁和内置锁,并对它们进行详细分析和对比。 什么是锁? 在多线程编程中,为了保证共享资源的正确访问,我们经常需要对这…

    Java 2023年5月19日
    00
  • Java垃圾回收之复制算法详解

    Java垃圾回收之复制算法详解 什么是复制算法? 复制算法是一种垃圾回收算法,也是最简单的垃圾回收算法之一。它的主要思想是将可用内存分为大小相等的两块,每次只使用其中一块,当这一块内存使用完时,就将还存活的对象复制到另外一块上,然后将这一块全部清空,然后继续使用这一块内存。 复制算法的过程 复制算法可以划分为三个步骤: 在堆内存的可用空间中分配对象,这是常规…

    Java 2023年5月19日
    00
  • 使用Spring Data R2DBC +Postgres实现增删改查功能

    使用Spring Data R2DBC + Postgres实现增删改查功能,需要完成以下步骤: 添加依赖项 在pom.xml文件中添加以下依赖项: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-…

    Java 2023年5月20日
    00
  • 一文带你搞懂Spring响应式编程

    一文带你搞懂Spring响应式编程 Spring 是一个流行的框架,它可以帮助我们构建各种类型的应用程序,包括 Web 应用程序、RESTful APIs、消息传递应用程序等,同时它也可以用于响应式编程。响应式编程是一种编程模型,可以在程序的不同部分之间传递异步数据流,使其更具可伸缩性和弹性。为了帮助大家更好地理解 Spring 响应式编程,我们提供了以下详…

    Java 2023年5月19日
    00
  • 一文吃透 Spring 中的 AOP 编程

    一文吃透 Spring 中的 AOP 编程 什么是 AOP AOP(Aspect Oriented Programming)即面向切面编程。与 OOP(面向对象编程)不同,AOP 不是关注代码的对象,而是关注在程序运行过程中“特定点”发生的一些处理。其主要作用是在不修改原有逻辑的情况下,对程序进行一些扩展操作,例如:日志记录、性能监控、事务管理等。 Spri…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部