java - model.addAttribute() 参数

标签 java spring spring-mvc

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

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

ControllerData Access Object > 请求一些东西 数据访问对象通过getProductList()方法从数据库模型获取数据> 将信息存储到列表 > 然后将列表绑定(bind)到模型。

所以我有两个问题。

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

model.addAttribute("products",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";
    }
}

如有任何解释或评论,我将不胜感激。

谢谢。

最佳答案

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

model.addAttribute("products",products);

"products"只是一个名称,您可以在您的 View 中使用它通过 ${products} 获取值

关于java - model.addAttribute() 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40303916/

相关文章:

java - 无法将模型对象添加到 "/"中的 jsp View ,但相同的方法正在调用/index

java - textarea Wicket 的样式文本

java - 如何使用 JDO 3.0 从 App Engine 数据存储区获取所有对象?

java - RxJava/Rx绑定(bind) : how to handle errors on RxView

java - 如何在多模块 Maven SVN 项目中的另一个模块中正确使用另一个模块的类?

spring - 运行 maven 时禁止 Jasper 库下载 : mvn package

java - JDBC结果为空时如何返回false

java - Spring @Cacheable 使用 hset

spring-mvc - Thymeleaf 不解析 "sec:authorize"属性

java - 如何映射 ModelAttribute 的属性?