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);
}
});