SpringBoot控制层返回html页面

本文介绍了如何在SpringBoot应用中配置返回HTML页面。通过在`application.yml`中设置视图解析路径为`templates`,并在该目录下创建如`welcome.html`的页面。控制器层需要注意避免使用`@RequestBody`注解,以防止返回JSON数据,正确做法是直接返回"welcome",浏览器将会加载`welcome.html`。通过访问`http://localhost:8080/user/test`,即可查看到渲染后的欢迎页面。

在application.yml中添加如下语句   

thymeleaf:
  prefix: classpath:/templates/

这个语句的意思是将路径设为templates下,在这个路径下写html页面进行访问

比如我写了一个welcome页面

 

 

然后在controller层进行返回

 

记住,不能有@RequestBody,不然会返回json数据,也就是返回字符串welcome,而不是welcome.html

接着,在浏览器中输入http://localhost:8080/user/test

就会显示welcome页面啦

 

### 使用 Thymeleaf 将 Spring Boot 控制器中的数据传递给 HTML 页面 在构建基于 Spring Boot 的 Web 应用程序时,Thymeleaf 是一种常用的模板引擎,用于将服务器端的数据渲染到客户端浏览器上显示。为了实现这一目标,在控制器中不仅需要指定要呈现的视图名称,还需要通过模型(Model)对象向该视图传输必要的业务逻辑处理后的信息。 下面是一个简单的例子来展示如何完成这项工作: #### 定义实体类 `Site` 假设有一个名为`Site`的实体类表示数据库表结构,此部分已经在引用材料中给出[^2]。 ```java package com.example.demo; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @Entity public class Site { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Integer id; private String name; private String url; // Getters and Setters... } ``` #### 创建服务接口并继承 `CrudRepository` 同样地,这里的服务层定义也已在提供的资料中有体现,即创建了一个名为`SiteService`的接口以管理对`Site`实体的操作。 ```java @Repository public interface SiteService extends CrudRepository<Site, Integer> { public List<Site> findAll(); public Site findById(Integer id); public Site save(Site site); public void deleteById(Integer id); } ``` #### 编写控制器方法并向视图提供数据 接下来是在控制器(`testController`)内编写具体的方法以便于接收HTTP请求并将相应的站点列表作为属性添加至Model实例中再转发给前端页面进行展现[^1]。 ```java @Controller public class TestController { @Autowired private SiteService siteService; @GetMapping("/sites") public String listSites(Model model){ Iterable<Site> sites = siteService.findAll(); model.addAttribute("siteList", sites); return "list_sites"; } } ``` 上述代码片段展示了当访问路径为 `/sites` 时触发的动作——获取所有的网站记录并通过键 `"siteList"` 存入 Model 对象供后续使用;最后指定了返回的是名为 `list_sites.html` 的 Thymeleef 模板文件名而非纯文本字符串形式的结果。 #### 构建 Thymeleaf 模板文件 对于位于 resources/templates 文件夹下的 `list_sites.html` ,可以按照如下方式设计其内容布局: ```html <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <title>Sites</title> <meta charset="UTF-8"/> </head> <body> <h1>List of Sites:</h1> <table border="1" cellpadding="10"> <tr> <th>ID</th><th>Name</th><th>URL</th> </tr> <!--/* Iterate over the 'siteList' attribute */--> <tr th:each="site : ${siteList}"> <td th:text="${site.id}">ID</td> <td th:text="${site.name}">Name</td> <td th:text="${site.url}"><a href="#" th:href="@{${site.url}}">Link</a></td> </tr> </table> </body> </html> ``` 这段HTML文档利用了 Thymeleaf 提供的各种表达式语法特性实现了动态加载来自后台传来的数据集,并将其表格化呈现在网页界面上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值