ModelAndView存取數Model、Map、ModelMap
阿新 • • 發佈:2018-07-29
-c out 數據 () strong 需要 ppi bject 指定
1、從名字上看ModelAndView中的Model代表模型,View代表視圖,這個名字就很好地解釋了該類的作用。(對應mvc配置,尋找模型,返回視圖。)
2、業務處理器調用模型層處理完用戶請求後,把結果數據存儲在該類的model屬性中,把要返回的視圖信息存儲在該類的view屬性中,
3、然後讓該ModelAndView返回該Spring MVC框架。框架通過調用配置文件中定義的視圖解析器,對該對象進行解析,
4、最後把結果數據顯示在指定的頁面上。
在DispatcherServlet將請求分發給Spring Controller之前,需要借助於Spring提供的HandlerMapping定位到具體的Controller。HandlerMapping是這樣一種對象,它能夠完成客戶請求到Controller之間的映射。在Struts中,這種映射是通過struts-config.xml文件完成的。其中,Spring為Controller接口提供了若幹實現,例如Spring默認使用的BeanNameUrlHandlerMapping。還有,SimpleUrlHandlerMapping,CommonsPathMapHandlerMapping。
EL表達式取數位置:
Model、Map、ModelMap以及ModelAndView:初始化由Spring創建以上對象。
${msg }=${requestScope.msg }=<%=request.getAttribute("msg")%>
${user.getName()}=${requestScope.user.getName()}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
@RequestMapping ( "/save.do" )
public ModelAndView save(User user){
System.out.println( "------------------" );
System.out.println( "name=" +user.getName()+ " age=" +user.getAge());
System.out.println( "------------------" );
ModelAndView mv = new ModelAndView( "success" );
mv.addObject( "msg" , "添加成功3" );
mv.addObject( "user" , user);
return mv;
}
//直接在處理方法上聲明ModelMap對象 springmvc會將ModelMap中的數據攜帶到前臺
@RequestMapping ( "/show.do" )
public ModelAndView show(ModelMap map){
map.addAttribute( "msg" , "modelMap攜帶參數" );
return new ModelAndView( "success" );
}
//直接在處理方法上聲明ModelMap對象 springmvc會將ModelMap中的數據攜帶到前臺
@RequestMapping ( "/show1.do" )
public ModelAndView show1(Model map){
map.addAttribute( "msg" , "modelMap攜帶參數1" );
return new ModelAndView( "success" );
}
//直接在處理方法上聲明request對象
@RequestMapping ( "/show2.do" )
public ModelAndView show2(HttpServletRequest req){
req.setAttribute( "msg" , "req攜帶參數" );
return new ModelAndView( "success" );
}
|
ModelAndView存取數Model、Map、ModelMap