[英]model.addAttribute() parameters
我是Spring MVC
框架的新手。 我正在做一些自学,以扩展我的Java知识。
这就是我从正在遵循的教程中理解getProducts()
代码定义的方式,但是如果我错了,请更正我。
控制器请求数据访问对象 >
数据访问对象通过getProductList()
方法从数据库或模型获取数据>
将信息存储到列表>
然后将列表绑定到模型。
所以我有两个问题。
将model
作为参数包含在公共String getProducts(Model model)
被视为依赖项注入
是model.addAttribute("products",products);
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";
}
}
我将不胜感激任何解释或评论。
谢谢。
是的,模型是通过spring实例化并注入到您的方法中的,这意味着如果模型属性中的任何一个与请求中的任何内容匹配,它将被填充。 它应该是方法中的最后一个参数
model.addAttribute("products",products);
“产品”只是一个名称,您可以在视图中使用它,并通过${products}
获得价值
我的代码。 这是样品。
@Autowired
private ProductService productService;
@RequestMapping(value = "/settings/product")
public ModelAndView showProduct(ModelAndView mav, HttpServletRequest req, Authentication auth) {
CustomUserDetail customUserDetail = (CustomUserDetail) auth.getPrincipal();
int associationIdx = customUserDetail.getAccount().getAssociation().getIdx();
String language = CookieUtil.getCookieValue(req, "lang");
Association association = associationService.findAssociationByIdx(associationIdx);
List<AssociationProductColumnDefine> columns = associationService.findByAssociationAndLanguage(association,
language);
List<AssociationProductColumnDefine> source = associationService.findByAssociationAndLanguage(association,
"ko-kr");
mav.addObject("association", association);
mav.addObject("source", source);
mav.addObject("columns", columns);
mav.setViewName("/association/association_settings_product");
return mav;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.