SpringMVC數據頁響應ModelAndView實現頁面跳轉

SpringMVC的數據響應

SpringMVC的數據響應方式

①頁面跳轉

  • 直接返回字符串(如在一個方法中,return瞭一個"xxx.jsp",就會轉發到那個jsp頁面中,這就是直接返回字符串的形式)
  • 通過ModelAndView對象返回

②回寫數據

  • 直接返回字符串(相當於在javaweb裡的resp.getwrite(),print)
  • 返回對象或集合  

頁面跳轉

1、返回字符串形式

直接返回字符串:此種方式會將返回的字符串與視圖解析器的前後綴拼接後跳轉。

 返回帶有前綴的字符串:

轉發:forward:/WEB_INF/views/index.jsp(forward可以省略不寫)
重定向:redirect:/index.jsp

2、返回ModelAndView對象

方式1:直接new對象

//配置類,使用註解把這個類放到容器中
@Controller
@RequestMapping(value="KongChao")
public class userController {
    @RequestMapping(value = "/ZengHui2")
    public ModelAndView save2(){
        /*
        Model 模型 作用是封裝數據
        View  視圖 作用是展示數據
         */
        ModelAndView modelAndView=new ModelAndView();
        //設置模型數據(鍵值對,鍵為String,值為Oject)
        modelAndView.addObject("username", 1);
        //設置視圖名字
        modelAndView.setViewName("KCandZH");//經過前後綴拼接就位/jsp/KCandZH.jsp
        return modelAndView;
    }
}

在jsp包下的KCandZH.jsp中

<html>
<head>
    <base href="<%=basepath%20%>" rel="external nofollow" />
    <meta charset="utf-8"/>
    <title>Insert title here</title>
</head>
<body>
kCandZH forever  ${username}
</body>
</html>

加上一個El表達式,這樣瀏覽器訪問localhost:8080/KongChao/ZengHui2,就會顯示出kCandZH forever  1

 方式2:寫在方法裡讓SpringMVC創建

也可以不new對象的方式,在方法中直接寫model對象,SpringMVC會自動幫你創建

//配置類,使用註解把這個類放到容器中
@Controller
@RequestMapping(value="KongChao")
public class userController {
 
    @RequestMapping(value = "/ZengHui3")
    public ModelAndView save3( ModelAndView modelAndView){
        //設置模型數據(鍵值對,鍵為String,值為Oject)
        modelAndView.addObject("username", "babala");
        //設置視圖名字
        modelAndView.setViewName("KCandZH");//經過前後綴拼接就位/jsp/KCandZH.jsp
        return modelAndView;
    }
}

方式3:model和view分開做

model是SpringMVC框架封裝好的

//配置類,使用註解把這個類放到容器中
@Controller
@RequestMapping(value="KongChao")
public class userController {
    @RequestMapping(value = "/ZengHui4")
    public String save4(Model model){//是model
        //設置模型數據(鍵值對,鍵為String,值為Oject)
      model.addAttribute("username","曾慧");
 
      return "KCandZH";//是view
 
    }
}

方式4:通過HttpServletRequest

//配置類,使用註解把這個類放到容器中
@Controller
@RequestMapping(value="KongChao")
public class userController {
    @RequestMapping(value = "/ZengHui5")
    public String save5(HttpServletRequest request){//是model
        //設置模型數據(鍵值對,鍵為String,值為Oject)
        request.setAttribute("username","kckckc");
        
        return "KCandZH";
    }
}

方式3和方式4的區別,model是SpringMVC封裝好的,而HttpServletRequest是原生的javaweb,是由tomcat服務器產生的,這個產生的對象中有數據,有http請求的數據(請求行,請求體….),model對象則是空的。方式4不常用

到此這篇關於SpringMVC數據頁響應ModelAndView實現頁面跳轉的文章就介紹到這瞭,更多相關SpringMVC頁面跳轉內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: