2011-03-14 127 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