首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >model.addAttribute()参数

model.addAttribute()参数
EN

Stack Overflow用户
提问于 2016-10-28 11:16:24
回答 2查看 38.5K关注 0票数 5

我是Spring MVC框架的新手。我正在做一些自我研究,以扩展我的Java知识。

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

Controller请求数据访问对象 > 数据访问对象通过getProductList()方法>数据库E 111模型E 212获取数据,然后将列表绑定到模型中。

关于这个我有两个问题。

是否将model作为参数包含在公共String getProducts(Model model)中,认为依赖项注入

products (在引号中)在model.addAttribute("products",products);中只是一个名称,我可以将其更改为任何我喜欢的名称,还是应该与之匹配?

代码语言:javascript
复制
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";
    }
}

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

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2016-10-28 11:25:08

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

代码语言:javascript
复制
model.addAttribute("products",products);

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

票数 6
EN

Stack Overflow用户

发布于 2016-10-28 14:34:58

我的密码。这是样品。

代码语言:javascript
复制
    @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;
    }
  1. 是的,你选择模型和ModelAndView。
  2. 是的很简单。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40303916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档