model.addAttribute() 参数

jor*_*dan 4 java spring spring-mvc

我是Spring MVC框架的新手。我正在做一些自学以扩展我在 Java 方面的知识。

这就是我getProducts()从我正在关注的教程中理解代码定义的方式,但如果我错了,请纠正我。

控制器请求从一些数据访问对象 > 数据访问对象从获取数据的数据库模型透过getProductList()方法>将信息存储到列表>然后结合列表的模型。

所以我有两个关于这个的问题。

model在 public 中包含as 参数是否被String getProducts(Model model)认为是依赖注入

products在(内引号)model.addAttribute("products",products);只是一个,我可以改变任何我喜欢还是应该符合什么名字?

public class HomeController {

    private ProductDao productDao = new ProductDao();

    @RequestMapping("/")
    public String home(){
        return "home";
    }

    @RequestMapping("/productList")
    public String getProducts(Model model){
        List<Product> products = productDao.getProductList();
        model.addAttribute("products",products);

        return "productList";  //productList string is the productList.jsp which is a view
    }

    @RequestMapping("/productList/viewProduct")
    public String viewProduct(){
        return "viewProduct";
    }
}
Run Code Online (Sandbox Code Playgroud)

我很感激任何解释或评论。

谢谢你。

kuh*_*yan 5

是的,模型由 spring 实例化并注入到您的方法中,这意味着如果任何模型属性与请求中的任何内容匹配,它将被填充。它应该是方法中的最后一个参数

model.addAttribute("products",products);
Run Code Online (Sandbox Code Playgroud)

“产品”只是一个名称,您可以在视图中使用它来获取价值 ${products}