程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> SpringMVC使用進階-內置對象和跳轉

SpringMVC使用進階-內置對象和跳轉

編輯:C++入門知識

SpringMVC使用進階-內置對象和跳轉


內置對象和頁面跳轉是web開發中比較重要的組成部分,springmvc作為新生代的框架,對這方面的支持也還算不錯,這次著重分享跳轉方式和內置對象的使用

一 頁面跳轉

頁面跳轉分為客戶端跳轉和服務端跳轉兩種,在springmvc中使用跳轉是比較簡單的,只需在return後面寫就可以了

(1)客戶端跳轉

return "redirect:user.do?method=reg5";  
return "redirect:http://www.baidu.com"; 

(2)服務端跳轉
return "forward:index.jsp";
return "forward:user.do?method=reg5"; 


二 內置對象

springmvc中也可以像servlet那樣使用內置對象,同時也有自己獨立的寫法,先來看看springmvc中運用傳統方式使用內置對象

@RequestMapping(params="method=reg2")
public String reg2(String uname,HttpServletRequest req,ModelMap map){
		req.setAttribute("a", "aa");
		req.getSession().setAttribute("b", "bb");
		return "index";
}

這段代碼和servlet比較類似,但是springmvc的寫法就更簡單,如下所示

ModelMap 和request內置對象的功能一致

@SessionAttributes 看名字就可以看出這個注解和session有關,主要用於將ModelMap中指定的屬性放到session中,可以參照下面的事例代碼

@Controller
@RequestMapping("/user.do")
@SessionAttributes({"u","a"})   //將ModelMap中屬性名字為u、a的再放入session中。這樣,request和session中都有了。
public class UserController  {
	@RequestMapping(params="method=reg4")
	public String reg4(ModelMap map) {  		System.out.println("HelloController.handleRequest()");
		map.addAttribute("u","uuuu");  //將u放入request作用域中,這樣轉發頁面也可以取到這個數據。
		return "index";
	}
}

@ModelAttribute 這個注解可以和@SessionAttribute配合使用,可以將ModelMap中屬性的值通過該注解自動賦給指定變量

如下所示

@RequestMapping(params="method=reg5")
public String reg5(@ModelAttribute("u")String uname,ModelMap map) { //[將屬性u的值賦給形參uname]
		System.out.println("HelloController.handleRequest()");
		System.out.println(uname); 
		return "index";
}


最後總結一下ModelAndView模型視圖類,見名知意,從名字上我們可以知道ModelAndView中的Model代表模型,View代表視圖。即,這個類把要顯示的數據存儲到了Model屬性中,要跳轉的視圖信息存儲到了view屬性。但是常規情況下一般是返回字符串。為了看得更明白我也把使用ModelAndView方式返回頁面的代碼貼出來。


@RequestMapping(params="method=login3")
public ModelAndView login3(){
		ModelAndView mv=new ModelAndView();
		mv.setViewName("index2");
		return mv;
}


是不是都很簡單呢,下次打算分享的內容是springmvc文件上傳。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved