springboot+ thmleaf使用json如何重定向
时间: 2023-12-29 20:03:35 浏览: 90
Springboot转发重定向实现方式解析
在 Spring Boot 中使用 Thymeleaf 和 JSON 进行重定向可以通过以下步骤完成:
1. 在控制器中使用 `@ResponseBody` 注解将返回值转换为 JSON 格式。
2. 使用 `RedirectAttributes` 将 JSON 数据添加到重定向的 URL 中。
3. 在 Thymeleaf 模板中使用 JavaScript 从重定向 URL 获取 JSON 数据并进行处理。
具体实现步骤如下:
1. 在控制器中使用 `@ResponseBody` 注解将返回值转换为 JSON 格式:
```java
@GetMapping("/json")
@ResponseBody
public Map<String, Object> json() {
Map<String, Object> map = new HashMap<>();
map.put("username", "John");
map.put("age", 28);
return map;
}
```
以上代码返回一个包含用户名和年龄的 JSON 对象。
2. 使用 `RedirectAttributes` 将 JSON 数据添加到重定向的 URL 中:
```java
@GetMapping("/redirect")
public String redirect(RedirectAttributes redirectAttributes) {
Map<String, Object> map = new HashMap<>();
map.put("username", "John");
map.put("age", 28);
redirectAttributes.addFlashAttribute("json", new Gson().toJson(map));
return "redirect:/result";
}
```
以上代码将 JSON 对象添加到 Flash 属性中,并将其作为参数传递给重定向的 URL。
3. 在 Thymeleaf 模板中使用 JavaScript 从重定向 URL 获取 JSON 数据并进行处理:
```html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>JSON Redirect</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script th:inline="javascript">
/*<![CDATA[*/
$(function() {
var urlParams = new URLSearchParams(window.location.search);
var json = urlParams.get('json');
var data = JSON.parse(decodeURIComponent(json));
console.log(data);
});
/*]]>*/
</script>
</head>
<body>
<h1>JSON Redirect</h1>
</body>
</html>
```
以上代码使用 JavaScript 从重定向的 URL 获取 JSON 数据,并在控制台中输出数据。在实际应用中,可以根据需要进行处理。
阅读全文