2011-03-14 128 views
0

我正在將我的控制器轉換爲註釋樣式控制器在春天mvc。如何使用spring註釋返回多個模型對象返回值?

基本上我在老式控制器simpleformcontroller中這樣做。

protected Map referenceData(HttpServletRequest request) throws Exception { 
    Map referenceData = new HashMap(); 
    List<ItemVo> lstItem1 = eqrManager .searchAllEqptCondQualItems("A1", "BOXES");  List<ItemVo> lstItem2 = eqrManager.searchAllEqptFullQualItems("A2", "CANNED_GOODS");  referenceData.put("BOX_ITEMS", lstItem1); 
referenceData.put("CANNED_ITEMS", lstItem2); 
return referenceData; 
} 

我做下面的方式通過採取模型作爲輸入參數,但它僅調用一次,我怎樣才能讓下面的方法應該調用每次當表單提交情況。

@RequestMapping(method=RequestMethod.GET) public void setUp(Model model) { 
    model.addAttribute("CANNED_ITEMS", eqrManager.searchAllEqptFullQualItems("A2", "CANNED_GOODS"))   .addAttribute("BOX_ITEMS", eqrManager.searchAllEqptCondQualItems("A1", "BOXES")); } 

問候,

拉吉

回答

0

可以使用@ModelAttribute -annotated方法作爲替換的referenceData()

@ModelAttribute("CANNED_ITEMS") 
public List<ItemVo> cannedItems() { 
    return eqrManager.searchAllEqptFullQualItems("A2", "CANNED_GOODS"); 
} 

@ModelAttribute("BOX_ITEMS") 
public List<ItemVo> boxItems() { 
    return eqrManager .searchAllEqptCondQualItems("A1", "BOXES"); 
} 

這些方法可用於由控制器處理的每個請求自動調用它們在哪裏定義,並將其結果添加到模型中。

+0

如何在每個表單提交的單一方法中調用此方法。 – rajputhch 2011-03-14 11:20:09

+0

我在它的工作之前嘗試過,但我想定義單一方法返回所有我的iniital對象來加載我的表單,它應該調用每個請求。 – rajputhch 2011-03-14 11:26:20