springmvc中Model ModelAndView ModelMap Map 的理解 [轉]


1.ModelAndView的用法 個人認為它不能直接放在方法的參數中,而是需要在方法中通過new來創建。如下所示

可以在方法中直接

ModelAndView  mv = new ModelAndView  () ;

將頁面需要獲取的值放入mv中 。直接return mv    指向那個頁面,通過  類名上的注解名稱/ 方法上的注解的名稱,找到對應的頁面。

它找頁面是通過類上的注解名 和  該方法的上的注解名  兩者拼接找頁面

 

2.Model  的用法。。他不需要new 直接放在方法的參數中。 個人認為ModelMap跟model的用法一模一樣。不需要new直接放在方法的參數中 如

 Model    和    ModelMap       是通過return的值去找頁面。如:    return "home/login"   直接去找home下的login這個頁面

public String createOrder(
@RequestParam(value = "productInfoId", required = true) String proId,
@RequestParam(value = "buyNum", required = true) Integer buyNum,Model model){

            return "home/login" ;

 

          //return "redirect:../account/banks";    頁面跳轉

           

}

 

如果上面2中 return null  也就是為null   springmvc也會幫我們找頁面。也是通過 類上的注解名 和  該方法的上的注解名  兩者拼接找頁面

 

 

我們把需要的值全部放入model中。頁面根據返回的字符串去找對應的頁面。這樣可以選在自己想要返回的頁面。。

就會從webapp/home下面 找login開頭的頁面。

 

modelandview
import org.springframework.web.servlet.ModelAndView (正確應該引入這個) 
improt org.springframework.web.portlet.ModelAndView (這個是錯誤的)

 

異步請求到springmvc 的controller 中

因為Model是直接放在方法的參數中,我們不需要去new ,我們把我們需要的值直接 model.addAttribute("flag", 1);我們不需要去return model 直接在頁面通過EL表達式就可以獲取。這種適用於值放在jsp頁面中

第二方式,@RequestMapping(value = "/getuserinfo")
    public @ResponseBody ModelMap getUser(
            @RequestParam(value = "entId", required = true) String entId) {}  這里我們使用的是返回ModelMap對象,

    ModelMap map = new ModelMap();

    map.addAttribute("flag", 1)

return map;

這里需要return map這樣在頁面才能夠獲取到值(這里return 的值比較適用於在js中)。 這種適用於

$.ajax({
            type : 'post',
            url : serviceUrl,
            data : {
                "entId" : entId
            },
            success : function(data) {
                $("#uuid").val(data.enterprise.uuid);
            }
        });

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM