如何初始化注入的表单支持模型bean?

时间:2017-09-13 09:02:23

标签: javascript spring spring-mvc spring-boot

所以我有模型实体Place必须初始化一些关系。 现在我在控制器中使用自动处理的模型表单支持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(可能是Spring-MVC)。有没有办法提供工厂方法来支持bean?我不想在控制器中这样做。

我试图将工厂代码放在我的配置中:

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

但这不起作用。

1 个答案:

答案 0 :(得分: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