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日

相关文章

  • Struts拦截器实现拦截未登陆用户实例解析

    Struts拦截器实现拦截未登录用户实例解析 什么是Struts拦截器? Struts2拦截器是请求处理流程中的组件,它可以拦截一个请求和响应,也可以在一个请求被处理前或被处理后插入一些处理逻辑。对于网站的作者和开发人员来说,Struts2拦截器可以帮助我们快速构建一个完整的Web应用。 Struts拦截器如何实现拦截未登录用户? Struts2开发框架允许…

    Java 2023年5月20日
    00
  • 详解Java中二分法的基本思路和实现

    下面我就为你讲解“详解Java中二分法的基本思路和实现”的完整攻略。 一、二分法的基本思路 在计算机科学领域中,二分法也称为二分查找、折半查找。二分法适用于对有序的数列进行查找的情况。它的基本思路是: 首先,将待查找的数列按照从小到大的顺序排好序。 然后,将数列的中间位置的数与待查找的数比较,若相等,则查找成功,返回该数的位置;若待查找的数比中间位置的数小,…

    Java 2023年5月19日
    00
  • 如何将默认的maven仓库改为阿里的maven仓库

    将默认的maven仓库改为阿里的maven仓库,需要在maven的settings.xml文件中进行配置。具体的步骤如下: 找到maven的settings.xml文件 在本地开发机上,maven的settings.xml文件一般位于maven安装目录的conf文件夹下。如果您使用的是IDEA等集成开发环境,则settings.xml文件可能位于IDEA安装…

    Java 2023年5月20日
    00
  • Java加载与存储指令之ldc与_fast_aldc指令

    Java加载与存储指令之ldc与_fast_aldc指令 在Java语言中,常数池是Java虚拟机处理的一个关键部分。Java字节码在运行时需要加载和存储常量来完成各种操作,Java指令集中就有专门用于加载常量到栈顶或将栈顶的常量存储到局部变量表中的指令。其中ldc指令用于加载常量,而_fast_aldc指令则用于快速加载常量。 ldc和ldc_w指令 ld…

    Java 2023年5月26日
    00
  • java的io操作(将字符串写入到txt文件中)

    下面我将详细讲解“Java的IO操作(将字符串写入到txt文件中)”的完整攻略。 IO操作简介 在Java中,IO(Input/Output)操作是非常重要的一个主题。对于Java开发者来说,IO操作是必不可少的。在Java中,提供了java.io包和java.nio包分别供我们进行IO操作。 其中,java.io包位于Java1.0版本中,提供了非常丰富的…

    Java 2023年5月19日
    00
  • 详解Maven打包和运行

    下面我将为你详细讲解Maven打包和运行的完整攻略。该攻略包含以下几个部分: 环境准备与Maven安装 Maven项目配置 打包操作 运行操作 先来看第一部分——环境准备与Maven安装。 环境准备与Maven安装 在进行Maven打包和运行之前,我们需要对环境进行一些准备工作: 安装Java环境:Maven需要依赖Java环境,如果你还没有安装Java环境…

    Java 2023年5月20日
    00
  • 学习不同 Java.net 语言中类似的函数结构

    学习不同Java.net语言中类似的函数结构,可以遵循以下攻略: 第一步:了解Java.net语言中的常见函数结构 在Java.net语言中,常见的函数结构有方法的声明、方法的参数、方法的返回值等。方法的声明包括方法名、访问修饰符、返回值类型和方法的参数类型等。方法的参数包括形式参数、实际参数和默认值等。方法的返回值包括返回值类型、返回值关键字和返回值的值等…

    Java 2023年5月26日
    00
  • SpringMVC JSON数据交互实现过程解析

    SpringMVC JSON数据交互实现过程解析 在 SpringMVC 中,我们可以使用 JSON 数据格式来进行数据交互。本文将详细讲解 SpringMVC JSON 数据交互实现过程的原理和步骤,包括如何使用 @RequestBody 注解来接收 JSON 数据、如何使用 MappingJackson2HttpMessageConverter 来将 J…

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