1. 程式人生 > >springmvc之@RequestMapping 以及Controller返回值講解

springmvc之@RequestMapping 以及Controller返回值講解

RequestMapping註解除了正常匹配URL對映外有幾個作用:

1、窄化請求對映

在controller類上給一個根路徑

2、請求方法限定

在使用@RequestMapping(value="路徑" method={request.GET,request.POST})

 

Controller方法的返回值

1、返回ModelAndView

需要方法結束時,定義ModelAndView,將Model和View分別設定。

        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("list",list);
        //指定檢視
        modelAndView.setViewName("sucsess");

2、返回String

如果controller方法返回string,表示返回邏輯檢視名

真正檢視(jsp路徑)=字首+邏輯檢視名+字尾 

 @RequestMapping("/queryItems")
    public String queryitems(Model model)throws Exception{
        //呼叫service根據商品id查詢商品資訊
        //ItemsCustom itemsCustom = itemsService.findItemsByID(1);
        //通過形參中的model將model資料傳到頁面
        //相當於ModelAndView.addObject()方法
        
        //model.addAttribute("itemsCustom",itemsCustom);

        return "items/edititems";
    }

2、redirect 重定向

商品修改提交後,重定向到商品查詢列表。

redirect重定向特點:瀏覽器位址列中的URL會變化。修改提交的request資料無法傳到重定向的地址。

因為重定向後重新進行request(request無法共享)

return redirect:"queryItems.actioon";

3、forward頁面轉發

通過forward進行頁面轉發,瀏覽器位址列URL不變,request可以共享。

return "forward:queryItems.action"

返回void

1、使用request轉向頁面,如下:

request.getRequestDispatcher("頁面路徑").forward(request,response);

 

2、也可以通過response頁面重定向

response.sendRedirect("url")

3、使用此方法可以通過修改response,設定響應的資料格式,比如響應json資料格式。

httpServletResponse.setCharacterEncoding("utf-8");
httpServletResponse.setContentType("application/json;charset=utf-8");
httpServletResponse.getWriter().write("json串");