我是 Spring MVC
框架的新手。我正在做一些自学以扩展我在 Java 方面的知识。
这是我从我正在关注的教程中理解 getProducts()
代码定义的方式,但如果我错了,请纠正我。
Controller 从 Data 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/