我正在将我的控制器转换为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")); }
此致
拉吉
答案 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");
}
为控制器处理的每个请求自动调用这些方法,并将它们的结果添加到模型中。