package com.example.controller; import com.example.domain.Cart; import com.example.domain.Order; import com.example.service.OrderService; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpSession; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; import java.util.List; @Controller @RequestMapping("/orders") public class OrderController { @Autowired private HttpServletRequest request; @Autowired private OrderService orderService; @PostMapping("/order") public String order(@RequestBody List<Cart> carts , Model model){ HttpSession session = request.getSession(); Long userId =(Long)session.getAttribute("userId"); List<Order> orders = orderService.getByUserId(userId); session.setAttribute("orders",orders); session.setAttribute("carts",carts); // model.addAttribute("username",session.getAttribute("username")); // model.addAttribute("orders",orders); // model.addAttribute("carts",carts); return "/order"; } @GetMapping("/order2") public String order2(Model model){ HttpSession session = request.getSession(); model.addAttribute("username",session.getAttribute("username")); model.addAttribute("orders",session.getAttribute("orders")); model.addAttribute("carts",session.getAttribute("carts")); return "/order"; } @GetMapping("/ok") public String ok(){ return "/ok"; } }
时间: 2024-04-27 19:22:15 浏览: 168
这是一个 Spring MVC 的 Controller 类,其中:
1. `@Controller` 注解表示该类是一个控制器。
2. `@RequestMapping("/orders")` 注解表示该控制器处理的请求的 URL 前缀为 "/orders"。
3. `@Autowired` 注解表示自动注入 HttpServletRequest 和 OrderService 对象。
4. `@PostMapping("/order")` 注解表示该方法处理 HTTP POST 请求,并且请求的 URL 为 "/orders/order"。该方法的参数列表中包含了一个 List<Cart> 类型的 carts 对象和一个 Model 类型的 model 对象,表示从前端页面传来的购物车列表和模型数据。
5. `@GetMapping("/order2")` 注解表示该方法处理 HTTP GET 请求,并且请求的 URL 为 "/orders/order2"。该方法的参数列表中包含了一个 Model 类型的 model 对象,表示模型数据。
6. `@GetMapping("/ok")` 注解表示该方法处理 HTTP GET 请求,并且请求的 URL 为 "/orders/ok"。
7. `HttpSession session = request.getSession()` 表示获取当前请求的 HttpSession 对象。
8. `Long userId =(Long)session.getAttribute("userId")` 表示从 HttpSession 中获取 userId 属性值,并将其转换为 Long 类型。
9. `List<Order> orders = orderService.getByUserId(userId)` 表示调用 orderService 的 getByUserId 方法,根据用户 id 获取订单列表。
10. `session.setAttribute("orders",orders)` 和 `session.setAttribute("carts",carts)` 表示将订单列表和购物车列表存入 HttpSession 中。
11. `model.addAttribute("username",session.getAttribute("username"))`、`model.addAttribute("orders",orders)` 和 `model.addAttribute("carts",carts)` 表示将 HttpSession 中的属性值存入 Model 对象中,以便在前端页面中使用。
阅读全文