我有以下要求。我将一个Model对象提交给一个视图,如下所示......
@RequestMapping(value ="/addItem", method = RequestMethod.GET)
public ModelAndView showContacts() {
ModelAndView modelAndView = new ModelAndView("addItem", "command", new Item());
return modelAndView;
}
但是在帖子上,我需要检索一个除了返回给我的“Item”对象(模型)之外的值。我不能让这个变量成为Item模型对象的一部分,因为它不属于那里。但我需要它返回才能对该值起作用。我怎么能这样做?
即。在我的JSP文件中,我有以下字段......
<form:input type="text" path="val1"/>
<form:input type="text" path="val2"/>
<form:input type="text" path="val3"/>
除此之外,只有字段val1和val2具有到Item对象的映射,而val3则没有。不过,我还需要将val3的值传递回我的控制器。我现在处理POST的代码如下,但我无法弄清楚如何获取val3的值。代码现在不能编译,因为它表示val3的Item类中没有字段或适当的getter方法。
@RequestMapping(value = "/postItem", method = RequestMethod.POST)
public String postItem(@ModelAttribute("item") Item item , BindingResult result) {
logger.info("Post Item:");
return "home";
}
如何修改上述代码以满足我的要求?
对此问题的一些指导将受到高度赞赏。
答案 0 :(得分:1)
您可以将地图作为模型传递,并在其中包含各种不同的内容。您不仅限于单个域对象,构造函数是方便的,它不是唯一的方法。有a variation of the constructor:
public ModelAndView(Object view,
Map model)
Create a new ModelAndView given a View object and a model.
Parameters:
view - View object to render (usually a Servlet MVC View object)
model - Map of model names (Strings) to model objects (Objects).
Model entries may not be null, but the model Map may be null if
there is no model data.