2010-04-21 97 views
0

我試圖以2種不同的方式做到這一點,但都不奏效。是否有可能將豆注入彈簧形式的豆

@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注射

形式豆被彈簧填充:

@RequestMapping(method = RequestMethod.POST) 
public String submit(@Valid final EmailForm emailForm, BindingResult result, final Model model) { 
+0

你能提供有關你的QuestionDAO類獲取和顯示代碼/註釋錯誤的詳細信息? – artgon 2010-04-21 23:31:59

回答

0

代碼@RequestMapping(method = RequestMethod.POST)是後發生表單提交,而不是之前。換句話說,當你從你的Spring Form進行表單提交(HTTP POST)時,它是,然後調用submit()方法。

要在Spring MVC中將任何對象傳遞到JSP,請使用org.springframework.web.servlet.ModelAndView實例並在其上調用addObject

然後你可以使用普通的JSTL標籤來顯示對象。例如:<c:out value="${standardizedAddress.streetLine}" />

0

我想他只是想知道如何自動注入一個Spring管理bean到一個POJO表單中,該POJO作爲參數傳遞給控制器​​的處理方法。它沒有被設置 - 所以不存在「錯誤」,並且與向模型添加對象沒有任何關係。

編輯:它看起來像這樣在另一個線程回答,在這裏:Custom bean instantiation logic in Spring MVC