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

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

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

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

 

 

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

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

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

 

 

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


免責聲明!

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



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