三、Springmvc之Controller層方法返回值


ItemController

@Controller
public class ItemController {

	@Autowired
	private ItemService itemService;
	
	/**
	 * 1.ModelAndView 無敵的,帶着數據,返回視圖路徑
	 * 2.String 返回視圖路徑,model帶數據
	 * 3.void  無法返回視圖,不能用來顯示數據。 ajax 請求合適   json格式數據(response 異步請求使用)
	 * @return
	 * @throws IOException 
	 * @throws ServletException 
	 */
	
	/**
	 * void-
	 */
	@RequestMapping(value="/item/itemList.action")
	public void itemList(Model model,HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{
		List<Items> list = itemService.selectItemList();
		model.addAttribute("itemList", list);
		request.getRequestDispatcher("/itemList").forward(request, response);
	}
	
	/**
	 * String
	 */
/*	@RequestMapping(value="/item/itemList.action")
	public String itemList(Model model){
		List<Items> list = itemService.selectItemList();
		model.addAttribute("itemList", list);
		return "itemList";
	}*/
	
	/**
	 * ModelAndView
	 */
	//顯示所有商品
/*	@RequestMapping(value="/item/itemList.action")
	public ModelAndView itemList(){
		
		//從Mysql查詢數據
		List<Items> list = itemService.selectItemList();
		System.out.println(list);
		
		ModelAndView mv = new ModelAndView();
		//添加數據
		mv.addObject("itemList", list);
		mv.setViewName("itemList");
		return mv;
	}*/
}

 

返回字符串類型可分為:

1、邏輯視圖名

//指定邏輯視圖名,經過視圖解析器解析為jsp物理路徑:/WEB-INF/jsp/itemList.jsp
return "itemList";

2、Request重定向

/**
 * 更新商品
 * 
 * @param item
 * @return
 */
@RequestMapping("updateItem")
public String updateItemById(Item item) {
	// 更新商品
	this.itemService.updateItemById(item);

	// 修改商品成功后,重定向到商品編輯頁面
	// 重定向后瀏覽器地址欄變更為重定向的地址,
	// 重定向相當於執行了新的request和response,所以之前的請求參數都會丟失
	// 如果要指定請求參數,需要在重定向的url后面添加 ?itemId=1 這樣的請求參數
	return "redirect:/itemEdit.action?itemId=" + item.getId();
}

3、forward轉發

/**
 * 更新商品
 * 
 * @param item
 * @return
 */
@RequestMapping("updateItem")
public String updateItemById(Item item) {
	// 更新商品
	this.itemService.updateItemById(item);

	// 修改商品成功后,繼續執行另一個方法
	// 使用轉發的方式實現。轉發后瀏覽器地址欄還是原來的請求地址,
	// 轉發並沒有執行新的request和response,所以之前的請求參數都存在
	return "forward:/itemEdit.action";

}
//結果轉發到editItem.action,request可以帶過去
return "forward: /itemEdit.action";

  

  

  

  


免責聲明!

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



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