2017-09-13 23 views
0

所以我有模型实体Place必须初始化一些关系。 现在我在控制器使用自动创建的模型形式,支持bean如下:如何初始化注入的form-b​​acking模型bean?

@GetMapping(value = "/add") 
public String addPlacePage(final Place place, Model model) { 
    model.addAttribute("services", serviceRepository.findAll()) 
      .addAttribute("categories", categoryRepository.findAll()) 
      .addAttribute("cities", cityRepository.findAll()); 
    return "admin/place/addPlace"; 
} 

Place place创建我的春节(Spring的MVC可能)。有没有办法提供支持bean的工厂方法?我想不要在控制器中这样做。

我试图把工厂代码在我的配置是这样的:

@Bean 
@Scope(value = "prototype") 
public Place place() { 
    log.info("Creating place in FACTORY"); 
    Place place = EntityFactory.emptyPlace(); 
    return place; 
} 

但这不起作用。

回答

0

因此,我在freenode上的#spring频道中提出了同样的问题,这是用户感谢用户< @_ollie>。为了做我想做的,@ModelAttribute方法应该在控制器中这样定义:

@ModelAttribute 
private Place emptyPlace(){ 
    log.info("Creating place in FACTORY"); 
    Place place = EntityFactory.emptyPlace(); 
    return place; 
} 

和相关文档是在这里 https://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc-ann-modelattrib-methods