2010-07-27 65 views
16

ModelMap剛剛在春季3的新名稱爲ModelAndViewModelAndView和ModelMap有什麼區別?

Spring 3中的功能是否更改?

使用考慮在春季3應用此代碼ModelMap

@RequestMapping(value = "/order", method = RequestMethod.GET) 
public final String setup(final ModelMap model) 
{ 
    model.addAttribute(ORDER, new Order()); 
    return "setup"; 
} 

我想知道這裏的ModelAndView相當於使用會一個老春應用的哪些方面?是否只需要將名稱從ModelMap更改爲ModelAndView即可在Spring 2.5中實現此功能?

回答

21

ModelAndView,顧名思義,包含模型,視圖的名稱。合約中的ModelMap只包含關於模型的信息。

你的榜樣會被寫入(在「舊」春)爲

public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) 
{ 
    return new ModelAndView("setup", ORDER, new Order()); 
} 
+0

關於新的春天3:如果我只返回ModelMap,那麼如何視圖返回?這裏的新手... – 2010-07-27 14:48:57

+1

@Abhijeet:Spring將從請求URI推斷出視圖名稱。 – skaffman 2010-07-27 15:22:47

+0

如果我想明確指定視圖名稱?這樣我就可以爲不同的請求使用相同的控制器。 – coder247 2012-03-26 10:31:36

8

@ coder247有人糾正我,如果我錯了,但你並不需要返回一個ModelMap。將你的屬性添加到你的ModelMap中,並簡單地返回一個作爲視圖名稱的字符串。

這是解釋如何做到這一點,更多的優秀文章... http://www.mkyong.com/spring-mvc/spring-mvc-form-handling-annotation-example/

+1

+ 1用於指出**「您不需要返回ModelMap」**。 – 2013-05-18 00:03:30