Springboot整合freemarker和相应的语法详解

下面是关于SpringBoot整合Freemarker的攻略以及相应的语法详解。

1. SpringBoot整合freemarker的步骤

1.1 引入依赖

在pom.xml中引入相关的依赖:

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

1.2 配置视图解析器

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

   @Override
   public void configureViewResolvers(ViewResolverRegistry registry) {
       registry.freeMarker().cache(false);
   }
}

1.3 编写Freemarker模板

在resources目录下创建templates文件夹,编写Freemarker模板,例如:

<!DOCTYPE html>
<html>
<head>
   <meta charset="UTF-8">
   <title>${title}</title>
</head>
<body>
   <h1>${content}</h1>
</body>
</html>

1.4 编写Controller

编写Controller类,通过ModelAndView将数据传递给模板,并指定使用的模板名称,例如:

@Controller
public class IndexController {

   @RequestMapping("/")
   public ModelAndView index() {
       ModelAndView modelAndView = new ModelAndView("index");
       modelAndView.addObject("title", "首页");
       modelAndView.addObject("content", "我是首页内容");
       return modelAndView;
   }
}

1.5 运行项目

运行SpringBoot应用,访问http://localhost:8080/,即可看到效果。

2. Freemarker语法详解

2.1 变量输出

在Freemarker模板中,使用${variableName}来输出变量的值,例如:

<h1>${title}</h1>

2.2 条件判断

使用<#if condition><!--#if-->来进行条件判断,例如:

<#if user.hasLogin>
    <p>欢迎回来,${user.nickname}!</p>
<#else>
    <p>请先<a href="/login">登录</a></p>
</#if>

2.3 循环遍历

使用<#list itemList as item><!--#list-->来进行循环遍历,例如:

<ul>
<#list articles as article>
    <li>${article.title}</li>
</#list>
</ul>

2.4 引用模板

使用<#include "templateName.ftl">来引用其他模板,例如:

<div id="header">
   <#include "header.ftl">
</div>

以上是SpringBoot整合Freemarker以及相应语法的详解。如果您还有其他问题,可以在评论区留言,我会尽快回复的。

示例1:SpringBoot整合Freemarker展示动态列表

1. 引入依赖

在pom.xml中引入相关依赖

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

<dependency>
   <groupId>com.baomidou</groupId>
   <artifactId>mybatis-plus-boot-starter</artifactId>
   <version>3.4.3.1</version>
</dependency>

<dependency>
   <groupId>com.h2database</groupId>
   <artifactId>h2</artifactId>
   <version>1.4.200</version>
</dependency>

2. 编写Mapper

编写对应的Mapper类:

@Mapper
public interface UserMapper {
    @Select("select * from user")
    List<User> findAll();
}

3. 编写Controller类并注入Mapper

编写Controller类,并将Mapper注入,例如:

@Controller
public class UserController {

   @Autowired
   private UserMapper userMapper;

   @RequestMapping("/users")
   public ModelAndView index() {
       ModelAndView modelAndView = new ModelAndView("users");
       List<User> userList = userMapper.findAll();
       modelAndView.addObject("userList", userList);
       return modelAndView;
   }
}

4. 编写Freemarker模板

在templates文件夹下创建users.ftl,编写Freemarker模板:

<#list userList as user>
   <p>${user.username},${user.age}岁</p>
</#list>

5. 运行项目

运行SpringBoot应用,访问http://localhost:8080/users,即可看到效果。

示例2:SpringBoot整合Freemarker实现表单提交

1. 编写Controller

编写Controller类,并将数据注入,例如:

@Controller
public class FormController {

   @GetMapping("/form")
   public ModelAndView form() {
       ModelAndView modelAndView = new ModelAndView("form");
       modelAndView.addObject("title", "表单提交");
       modelAndView.addObject("genderList", Arrays.asList("男", "女", "保密"));
       return modelAndView;
   }

   @PostMapping("/form")
   public ModelAndView submit(@RequestParam String username,
                              @RequestParam String password,
                              @RequestParam String gender,
                              @RequestParam Integer age) {
       ModelAndView modelAndView = new ModelAndView("form_result");
       modelAndView.addObject("title", "提交成功");
       modelAndView.addObject("username", username);
       modelAndView.addObject("password", password);
       modelAndView.addObject("gender", gender);
       modelAndView.addObject("age", age);
       return modelAndView;
   }
}

2. 编写Freemarker模板

在templates文件夹下创建form.ftl,编写Freemarker模板:

<h1>${title}</h1>
<form action="/form" method="post">
   <p>
       <label>用户名:<input type="text" name="username"></label>
   </p>
   <p>
       <label>密码:<input type="password" name="password"></label>
   </p>
   <p>
       <label>性别:
           <select name="gender">
               <#list genderList as item>
                   <option>${item}</option>
               </#list>
           </select>
       </label>
   </p>
   <p>
       <label>年龄:<input type="number" name="age"></label>
   </p>
   <p>
       <button type="submit">提交</button>
   </p>
</form>

在templates文件夹下创建form_result.ftl,编写Freemarker模板:

<h1>${title}</h1>
<p>用户名:${username}</p>
<p>密码:${password}</p>
<p>性别:${gender}</p>
<p>年龄:${age}</p>

3. 运行项目

运行SpringBoot应用,访问http://localhost:8080/form,填写表单并提交,即可看到效果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Springboot整合freemarker和相应的语法详解 - Python技术站

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

相关文章

  • 解决易语言编程乱码的问题

    问题描述:易语言在编写程序时,由于不支持Unicode编码,容易出现乱码的问题。 解决方案:有两种方法可以解决易语言编程乱码的问题。 方法一:使用GB2312编码 1.在易语言中,默认使用GB2312编码,所以在编写程序时,尽量使用GB2312编码来避免出现乱码的问题。 2.在打开文本文件时,使用“Ascii打开”或“文件打开”命令,指定读取文件所使用的编码…

    html 2023年5月31日
    00
  • XML到Java代码的数据绑定之对象

    关于“XML到Java代码的数据绑定之对象”的完整攻略,我先来讲一下XML是什么,Java代码是什么,数据绑定是什么: XML(可扩展标记语言)是一种常用的数据格式,可以用来描述结构化的数据,比如说我们可以使用XML来存储网站的数据或者配置参数。 Java代码是一种编程语言,用于开发应用程序和互联网应用。 数据绑定是将一种数据格式(比如XML)与另一种数据格…

    html 2023年5月30日
    00
  • java调用webService接口的代码实现

    下面是Java调用Web Service接口的代码实现的完整攻略。 前置知识 在学习如何使用Java调用Web Service接口之前,需要先了解以下几个概念: Web Service是一种基于互联网并使用标准化协议通信的、软件系统间相互交互的技术。 SOAP (Simple Object Access Protocol) 是一种基于 XML 的协议,用于交…

    html 2023年5月30日
    00
  • 如何自学计算机前端开发?精细的自学步骤是什么样的?

    计算机前端开发是一门非常有前途的技能,如果您想要自学计算机前端开发,可以按照以下步骤进行操作: 学习HTML和CSS:HTML和CSS是计算机前端开发的基础,您需要学习它们的语法和用法。可以通过在线教程、视频教程、书籍等方式进行学习。例如,可以在W3Schools、MDN Web Docs等网站上学习HTML和CSS。 学习JavaScript:JavaSc…

    html 2023年5月17日
    00
  • MYSQL中文乱码问题的解决方案

    MYSQL中文乱码问题的解决方案 问题背景 MYSQL是一种常用的关系型数据库,很多网站或应用程序都采用了它来存储和管理数据。然而,在使用MYSQL的过程中,经常会遇到中文乱码的问题。 我们在使用MYSQL进行数据存储时,如果数据中有中文字符,当我们查询或输出这些数据时,就会出现中文乱码的情况,这会给我们的数据使用和管理带来一定的困扰。 解决方案 1. 修改…

    html 2023年5月31日
    00
  • spacedesk x10怎么用?spacedesk x10安装使用图文教程

    以下是“spacedesk x10怎么用?spacedesk x10安装使用图文教程”的完整攻略: spacedesk x10怎么用?spacedesk x10安装使用图文教程 spacedesk x10是一款用于将Android设备变成第二个显示器的软件。它可以将Android设备变成一个无线显示器,让用户可以在Android设备上扩展或复制PC屏幕。下面…

    html 2023年5月18日
    00
  • 深入Lumisoft.NET组件开发碰到乱码等问题的解决方法

    深入Lumisoft.NET组件开发碰到乱码等问题的解决方法 背景 Lumisoft是一个用于.NET应用程序的开源类库,提供了一些常用的协议和通用工具,如SMTP和POP3协议类、MIME编解码类等。 在开发过程中,有时会碰到一些奇怪的问题,比如乱码、编码错误等。这些问题可能是由于Lumisoft内部实现的细节导致的,或者是在使用Lumisoft时没有完全…

    html 2023年5月31日
    00
  • VS怎么使用NuGet第三方插件? VS引用NuGet的方法

    VS怎么使用NuGet第三方插件?VS引用NuGet的方法 在Visual Studio中,您可以使用NuGet来管理和安装第三方插件。以下是关于如何使用NuGet的攻略,包括以下几个步骤: 步骤1:打开NuGet包管理器 首先,您需要打开NuGet包管理器。您可以在Visual Studio的“工具”菜单中找到“NuGet包管理器”选项。 步骤2:搜索并安…

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