我是Spring MVC
框架的新手。我正在做一些自学,以扩展我的Java知识。
我从以下教程中了解getProducts()
代码定义,但如果我错了,请纠正我。
控制器从数据访问对象 >
请求内容
数据访问对象通过getProductList()
方法从{strong>数据库或模型获取数据>
将信息存储到list >
然后将列表绑定到模型。
所以我对此有两个问题。
公共model
中包含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";
}
}
我很感激任何解释或评论。
谢谢。
答案 0 :(得分:3)
是, 模型由spring实例化并注入到您的方法中,意味着如果任何模型属性匹配请求中的任何内容,它将被填充。它应该是方法中的最后一个参数
model.addAttribute("products",products);
&#34;产品&#34;只是一个名称,您可以在视图中使用它来获取${products}
答案 1 :(得分:0)
我的代码。这是样本。
@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;
}