Spring 5视图中的多个/部分数据模型

时间:2018-04-04 19:13:11

标签: java spring jsp spring-mvc

对于登录用户始终可见的代码/设计事物的最佳方式是什么,例如当前购物车条目使用Spring,Hibernate和JSP进行商店应用程序封锁? 特别是从数据库传递数据并将其呈现给用户的最佳方法是什么?目前我只知道如何为每个页面传递单个专用数据,如产品列表页面中的产品:

@GetMapping(value = "/productList")
public String productList(Model model) {
    System.out.println("Requested productList");
    model.addAttribute("products", productService.list());
    return "productList";
}

但我还希望在该页面上显示另一个“视图”,其中包含有关当前购物车条目的数据,例如用户登录时的数量及其名称/价格。您是否始终必须在每个请求中检查它并添加'购物车条目的对象到ModelAndView实例,如:

    @GetMapping(value = "/productList")
    public String productList(Model model) {
        System.out.println("Requested productList");

        // Check if should add CartEntries data
        model.addAttribute("cartEntries", cartService.list());

        model.addAttribute("products", productService.list());
        return "productList";
    }

1 个答案:

答案 0 :(得分:0)

最有效的方法之一是在Session scoped bean中存储经常需要的数据。例如,您的用户将几个可以显示为List<Product> productList的项目添加到购物车。这种方式可以帮助您增加数据库查询和应用程序响应时间。但是如果你需要传递可以在请求之间更改的数据,你应该在数据库中存储一些ID并在每个请求中获取实际数据。