如何使用spring注释返回多个模型对象返回?

时间:2011-03-14 11:00:40

标签: spring

我正在将我的控制器转换为spring mvc中的带注释的样式控制器。

基本上我在旧式控制器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")); } 

此致

拉​​吉

1 个答案:

答案 0 :(得分:1)

您可以使用@ModelAttribute - 带注释的方法替代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");
}

为控制器处理的每个请求自动调用这些方法,并将它们的结果添加到模型中。