SpringMVC接收請求的方法返回數據的種類與作用

1. void: 並且沒有使用servletapi進行跳轉,那麼默認會將請求名作爲試圖名進行跳轉。

@RequestMapping("/login")
    public void login(User user){
    }

結果:

void: 在參數中使用了servletapi,並且在方法中使用servletapi進行了跳轉。那麼按照servletapi跳轉的位置進行跳轉。

複製代碼

@RequestMapping("/login")
    public void login(HttpServletRequest req,HttpServletResponse resp){
        try {
            req.getRequestDispatcher("success.jsp").forward(req, resp);
        } catch (ServletException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

複製代碼

結果:

使用servletAPI跳轉頁面,那麼通過servletAPI來攜帶數據可以的,但是通過mvc的模型數據不能攜帶數據。

 

2. ModelAndView 返回null 的時候,頁面不會跳轉。

@RequestMapping("/login")
    public ModelAndView login(){
        System.out.println("login==========");
        return null;
    }

1145977-20170503155906539-1493755215.pnguploading.4e448015.gif轉存失敗重新上傳取消

當返回值沒有指定視圖名時,默認使用請求名作爲視圖名進行跳轉。

@RequestMapping("/login")
    public ModelAndView login(){
        return new ModelAndView();
    }

1145977-20170503160315507-815096861.pnguploading.4e448015.gif轉存失敗重新上傳取消

當返回值指定了視圖名,那麼按照指定的試圖名進行跳轉。

 

 

3. String: 如果返回值時null,那麼以請求名作爲視圖名跳轉。

如果指定返回值,那麼按照指定返回值作爲視圖名進行跳轉,可以通過model,modelmap等攜帶數據

如果返回值時帶有“forword” 或者 “redired” 前綴,那麼將會進行相應的請求轉發和重定向,不能通過mvc的數據模型攜帶數據,可以通過servletApi來攜帶數據。

 

 

4. 其他類型:只能在異步時可以通過json返回。

 

 

附錄:

方法請求參數種類:

 

方法返回參數種類:

還有一點需要注意,如果是返回json格式數據(@ResponseBody或@RestController等),任意類型都可以返回

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章