我试过两种不同的方法,但都不管用。
@Component
public class EmailForm{
...
private QuestionDAO questionDAO;
...
@Autowired
public void setQuestionDAO(QuestionDAO questionDAO) {
this.questionDAO = questionDAO;
}
...
另一种方式:
@Component
public class EmailForm implements ApplicationContextAware {
...
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.questionDAO = (QuestionDAO)applicationContext.getBean("questionDAO");
}
...
这两种方法都不会导致questionDAO被注入
表单bean由spring填充:
@RequestMapping(method = RequestMethod.POST)
public String submit(@Valid final EmailForm emailForm, BindingResult result, final Model model) {
发布于 2010-04-22 00:37:33
代码@RequestMapping(method = RequestMethod.POST)
是在表单提交之后发生的,而不是在提交之前。换句话说,当您从Spring表单提交表单(HTTP POST)时,它将调用submit()方法。
要将任何对象传递给Spring MVC中的JSP,请使用org.springframework.web.servlet.ModelAndView
实例并在其上调用addObject
。
然后,您可以实际使用普通的JSTL标记来显示对象。例如:<c:out value="${standardizedAddress.streetLine}" />
发布于 2010-04-22 14:45:02
我想他只是想知道如何将一个spring托管bean自动注入到一个表单POJO中,该表单POJO作为参数传递给控制器的处理方法。它没有被设置--所以不存在“错误”perse,并且与向模型添加对象没有任何关系。
编辑:它看起来像是在另一个线程中回答了这个问题,这里:Custom bean instantiation logic in Spring MVC
https://stackoverflow.com/questions/2686733
复制相似问题