springboot如何跳转页面并把参数展示
时间: 2023-08-11 20:40:15 浏览: 325
在 Spring Boot 中,可以使用 Thymeleaf 模板引擎来实现页面跳转和参数传递。下面是实现方法:
1. 在 pom.xml 文件中添加 Thymeleaf 依赖:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
```
2. 在 application.properties 文件中配置 Thymeleaf 模板引擎:
```properties
# Thymeleaf
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
```
3. 创建控制器类(如:ProductController),用于处理请求和返回页面。在该控制器中,可以使用 @GetMapping 或 @PostMapping 注解来映射请求,同时使用 @RequestParam 或 @PathVariable 注解来获取请求参数。
```java
@Controller
public class ProductController {
@Autowired
private ProductService productService;
@GetMapping("/products")
public String list(Model model) {
List<Product> productList = productService.getAllProducts();
model.addAttribute("productList", productList);
return "productList";
}
@GetMapping("/products/{id}")
public String detail(@PathVariable("id") Long id, Model model) {
Product product = productService.getProductById(id);
model.addAttribute("product", product);
return "productDetail";
}
@PostMapping("/products")
public String add(Product product) {
productService.addProduct(product);
return "redirect:/products";
}
// 其他方法省略...
}
```
4. 在 templates 目录下创建 HTML 模板文件,并使用 Thymeleaf 模板语言展示数据和跳转页面。可以使用 th:text 和 th:each 等属性来展示数据,使用 th:href 属性来设置页面跳转链接。
productList.html:
```html
<!DOCTYPE html>
<html>
<head>
<title>Product List</title>
</head>
<body>
<h1>Product List</h1>
<table>
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Price</th>
</tr>
</thead>
<tbody>
<tr th:each="product : ${productList}">
<td th:text="${product.id}"></td>
<td th:text="${product.name}"></td>
<td th:text="${product.price}"></td>
</tr>
</tbody>
</table>
<a th:href="@{/products/add}">Add Product</a>
</body>
</html>
```
productDetail.html:
```html
<!DOCTYPE html>
<html>
<head>
<title>Product Detail</title>
</head>
<body>
<h1>Product Detail</h1>
<h2 th:text="${product.name}"></h2>
<p th:text="${product.description}"></p>
<p th:text="'Price: ' + ${product.price}"></p>
<a th:href="@{/products}">Back</a>
</body>
</html>
```
5. 在控制器中调用模板文件,并将数据传递给模板渲染引擎:
```java
@GetMapping("/products")
public String list(Model model) {
List<Product> productList = productService.getAllProducts();
model.addAttribute("productList", productList);
return "productList";
}
```
其中,"productList" 是模板文件名,productList 是控制器方法中的数据模型。
6. 最后,在浏览器中访问页面,即可看到展示出来的数据和页面跳转。
阅读全文