springboot freemarker 404

本文主要介绍了在使用最新版Spring Boot和Freemarker时遇到的.ftl文件后缀改为.ftlh的问题,以及如何配置YAML文件以解决。同时,列举了启动类位置错误、Controller请求映射错误、依赖引入错误等常见问题及其解决方案,帮助开发者顺利进行项目开发。

由于使用的为最新版springnboot和freemarker,网上的方法基本都试过去了,没有用,在最新版中.ftl文件后缀已经改为了.ftlh后缀。终于可以睡觉了
在这里插入图片描述

server:
  port: 8060

spring:
  mvc:
    view:
      #文件位置
      prefix: /templates/
      #文件后缀
      suffix: .ftl
      

其他问题:
一、
启动类位置放置错误,导致无法扫描到controller类;
正确为
在这里插入图片描述
二、
controller类请求映射名错误
1.与映射文件不匹配
2.请求字段前没有加 “/”
若是返回json页面则加注解@RestController
若是返回视图,则为@Controller
三、
依赖引入错误

        <!--freemarker模板-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-freemarker</artifactId>
        </dependency>

四、
yaml文件错误,上面有正确截图
低版本:spring.view.prefix/spring.view.suffix
高版本:spring.mvc.view.prefix/spring.mvc.view.suffix

### 如何在 Spring Boot 中集成和配置 FreeMarker 模板引擎 #### 添加 Maven 依赖 为了使 Spring Boot 支持 FreeMarker,在 `pom.xml` 文件中需加入特定的依赖项。具体来说,应包含如下所示的依赖: ```xml <!-- Freemarker 依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency> <!-- Web 依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> ``` 这些依赖确保了应用程序能够识别并处理 FreeMarker 的模板文件[^2]。 #### 配置 application.properties 或 application.yml 接着,应在配置文件里指定 FreeMarker 模板的位置以及其扩展名。对于采用 `.properties` 格式的配置文件而言,可以这样设置: ```properties spring.freemarker.template-loader-path=classpath:/templates/ spring.freemarker.suffix=.ftl ``` 如果偏好 YAML 格式,则相应的配置会是这样的形式: ```yaml spring: freemarker: template-loader-path: classpath:/templates/ suffix: .ftl ``` 上述配置指定了模板加载路径为类路径下的 `/templates/` 目录,并设定了模板文件的标准后缀名为 `.ftl`[^1]。 #### 创建控制器 (Controller) 创建一个新的控制器来渲染页面。下面是一个简单的例子展示如何返回一个视图名称给前端: ```java import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; @Controller public class HelloController { @GetMapping("/hello") public String hello(Model model) { model.addAttribute("message", "Hello, world!"); return "hello"; // 这里的 'hello' 对应 templates/hello.ftl 路径下的模板文件 } } ``` 这段代码定义了一个处理器方法用于响应来自浏览器的请求并将数据传递到 FreeMarker 模板以便呈现给用户。 #### 编写 FreeMarker 模板 最后一步是在资源目录下建立对应的 HTML+FTL 结构的模板文档。比如可以在 `src/main/resources/templates/` 下新建一个叫做 `hello.ftl` 的文件,内容可能像这样: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Hello Page</title> </head> <body> <h1>${message}</h1> </body> </html> ``` 此模板利用 `${}` 表达式语法获取由控制器传来的变量值并显示出来。 通过以上步骤就可以成功地在一个基于 Spring Boot 构建的应用程序内集成了 FreeMarker 模板引擎。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值