Spring MVC:如何检索提交给视图的模型之外的数据

时间:2012-06-22 16:47:59

标签: spring model-view-controller spring-mvc

我有以下要求。我将一个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";
    }

如何修改上述代码以满足我的要求?

对此问题的一些指导将受到高度赞赏。

1 个答案:

答案 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.