亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

在springMVC中controller的返回類型有哪些

發布時間:2021-03-01 16:57:39 來源:億速云 閱讀:440 作者:Leah 欄目:開發技術

這篇文章將為大家詳細講解有關在springMVC中controller的返回類型有哪些,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

1、返回ModelAndView

返回ModelAndView時最常見的一種返回結果。需要在方法結束的時候定義一個ModelAndView對象,并對Model和View分別進行設置。

2、返回String

1):字符串代表邏輯視圖名

真實的訪問路徑=“前綴”+邏輯視圖名+“后綴”

注意:如果返回的String代表邏輯視圖名的話,那么Model的返回方式如下:

public String testController(Model model){
model.addAttribute(attrName,attrValue);//相當于ModelAndView的addObject方法
return "邏輯視圖名";
 }

2):代表redirect重定向

redirect的特點和servlet一樣,使用redirect進行重定向那么地址欄中的URL會發生變化,同時不會攜帶上一次的request

案例:

public String testController(Model model){
 return "redirect:path";//path代表重定向的地址
 }

3):代表forward轉發

通過forward進行轉發,地址欄中的URL不會發生改變,同時會將上一次的request攜帶到寫一次請求中去

案例:

 public String testController(Model model){
 return "forward:path";//path代表轉發的地址
 }

3、返回void

返回這種結果的時候可以在Controller方法的形參中定義HTTPServletRequest和HTTPServletResponse對象進行請求的接收和響應

1)使用request轉發頁面

request.getRequestDispatcher("轉發路徑").forward(request,response);

2)使用response進行頁面重定向

response.sendRedirect("重定向路徑");

3)也可以使用response指定響應結果

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

以上三種返回值沒有什么重要和不重要的分別,一般來說都會使用到, 只不過有的時候使用的方式會有一些細微的差別

補充:SpringMvc中,Controller方法的多種實現方式(指定返回到哪個頁面,指定返回到頁面的數據)

1)ModelAndView

@RequestMapping("/list")
 public ModelAndView itemsList() throws Exception{  
 List<Items> list = itmesService.list();
 //創建ModelAndView視圖
 ModelAndView modelAndView = new ModelAndView();
 //將list數據添加到試圖里
 modelAndView.addObject("itemList", list);
 modelAndView.setViewName("itemList");//設置視圖的名稱,即返回到哪個頁面
 //由于有視圖解析器的作用,省去了前綴和后綴,其實訪問的頁面為("/WEB-INF/jsp/itemList.jsp")
 return modelAndView;
 }

2) String(最常用,最方便,建議)

@RequestMapping("/itemEdit/{id}")
 public String itemEdit(@PathVariable("id") Integer id, HttpServletRequest reuqest, 
  Model model) throws Exception{
 
 //String idStr = reuqest.getParameter("id");
 Items items = itmesService.findItemsById(id);
 //將items數據加到視圖中
 model.addAttribute("item", items);
 
 //這里返回editItem,在@Controller的注解下,回自動添加前綴和后綴,實則是返回到頁面("/WEB-INF/jsp/editItem.jsp")
 return "editItem";
 }

3) 返回void

public void update(Items items,HttpServletRequest request,HttpServletResponse response)throws Exception{
 //返回數據,將items的內容放入items里,jsp頁面調用items就行
 request.setAttribute("items", items);
 //返回指定的頁面
 //如果是void類型的話,就不會去調用SpringMvc的架構,因此無法自動加載視圖解析器,所以跳轉的
 //網頁名稱應該為其全路徑名稱
 request.getRequestDispatcher("/WEB-INF/jsp/success.jsp").forward(request, response);
 }
就不會去調用SpringMvc的架構,因此無法自動加載視圖解析器,所以跳轉的
 //網頁名稱應該為其全路徑名稱
 request.getRequestDispatcher("/WEB-INF/jsp/success.jsp").forward(request, response);
 }

4)關于方法中所需要的參數定義

舉3)中的例子,我在update方法中定義了:

Items items,HttpServletRequest request,以及HttpServletResponse response這三個類型.

但是大家可以發現,其實我在方法中是沒有用到response的,因此,可以把其刪掉,對于程序來說,并不會

產生影響。

因此,大家在定義方法的時候,可以根據自己的實際需要來定義所需要的類,或者大家怕以后代碼需要改麻煩的話,

全部定義上也是可以的。

更新

5)若如果想要接口不是跳轉頁面,而是返回數據,則需要添加@ResponseBody的注解

例:

@RequestMapping("atimynyc/getUser")
@ResponseBody
public User getUser(String id){
  User user = new User();
  user.setUserName = "Atimynyc";
  user.setUserAge = 18;
  user.setUserPhone = "123456789";
  return User;
}

通過加上ResponseBody,springmvc就知道該接口是返回數據,例,當我們用ajax調用上面的接口url時atimynyc/getUser,就可以獲得user這個對象。

關于在springMVC中controller的返回類型有哪些就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

德兴市| 乌鲁木齐市| 大余县| 双桥区| 曲阳县| 连州市| 元阳县| 东源县| 长阳| 大港区| 沭阳县| 兰考县| 石屏县| 安徽省| 镇安县| 江西省| 禄丰县| 长岛县| 大埔县| 繁峙县| 洪洞县| 滨海县| 河池市| 拜城县| 宾阳县| 宜川县| 太谷县| 库伦旗| 调兵山市| 武夷山市| 天台县| 隆尧县| 贺兰县| 措美县| 长治县| 类乌齐县| 海晏县| 孟津县| 昌黎县| 玛沁县| 双牌县|