1. 程式人生 > >Spring_MVC 一些基本註釋作用和用法

Spring_MVC 一些基本註釋作用和用法

1.1 接受頁面資料

@RequestMapping("/add")
	public String add(Bookinfo bookinfo) {	
		//呼叫業務層新增bookSerice.save(bookinfo);
		System.out.println(bookinfo.getBookid());
		System.out.println(bookinfo.getBookname());
		System.out.println(bookinfo.getBookprice());
		System.out.println(bookinfo.getBookimg());
		return "index";

值得注意的是   

  1. .放到()裡面的任何物件會自動例項化(new)
  2. 自動DI/IOC(相當於Servlet中寫的request.getParameter("bookid"))
  3. 會自動共享資料request.setAttribute("bookinfo",bookinfo)
  4. 這個共享只會共享頁面中輸入進來的資料,比如你只輸入了兩個欄位,其它欄位是不共享的
  5. 如果傳入的不是javabean中的物件,是基本資料型別不會自動共享

1.2 接收頁面資料,以變數的方式接 頁面中引數的名字與變數中保持一致

@RequestMapping("/add2")
	public String add2(String bookid,String bookname,double bookprice,String bookimg) {
		//呼叫業務層新增bookSerice.save(bookid,bookname,bookprice,bookimg);
		System.out.println(bookid);
		System.out.println(bookname);
		System.out.println(bookprice);
		System.out.println(bookimg);		
		return "index";
	}

1.3 接收頁面資料,使用原生request,response

@RequestMapping("/add3")
	public String add3(HttpServletRequest request,HttpServletResponse response) {
		String bookid = request.getParameter("bookid");
		String bookname = request.getParameter("bookname");
		double bookprice = Double.parseDouble(request.getParameter("bookprice"));
		String bookimg = request.getParameter("bookimg");
		
		System.out.println(bookid);
		System.out.println(bookname);
		System.out.println(bookprice);
		System.out.println(bookimg);

1.4  接收頁面資料,修改引數名字

@RequestMapping("/page")
	public String page(@RequestParam("page") int pageIndex) {
		System.out.println("頁數:"+pageIndex);
		return "index";
	}

注意:@RequestParam("page"),指定頁面引數的名字為page 例如 頁面傳值

如果不寫@RequestParam("page") 接受引數必須寫 page

2. 物件註解

@RequestMapping(value="/add4",method=RequestMethod.GET)//設定請求方式為Get,post不能訪問
	public String add4(@ModelAttribute("book") Bookinfo bookinfo) {
		System.out.println(bookinfo.getBookid());
		System.out.println(bookinfo.getBookname());
		System.out.println(bookinfo.getBookprice());
		System.out.println(bookinfo.getBookimg());
		
		return "index";
//		return "redirect:../index.jsp";
	}

@ModelAttribute("book"),這個註解的意思是:request.setAttribute("book",bookinfo);@ModelAttribute,不寫預設這個註解,request.setAttribute("bookinfo",bookinfo);

預設轉發 return "index"  等價於 request.getRequestDispatcher("/index.jsp").forward(request,response);

3.session共享

預設共享為request,如果想讓這個bookinfo共享範圍提升為session的,在類的最後面加上@SessionAttributes

4.1 從資料庫中查詢一個集合出來,並傳到JSP頁面去

@RequestMapping("/query")
	public String query(ModelMap map) {
		map.addAttribute("bookinfos", bookinfoService.getBookinfos());
		return "index";
	}

4.2 從資料庫查詢一個物件出來,並傳到JSP

@RequestMapping("/query2")
	public String query2(ModelMap map,Bookinfo bookinfo) {
		map.addAttribute("bookinfo", bookinfoService.getBookinfoById());
		return "index";
	}

4.3從資料庫查詢一個物件出來,並傳到JSP,用Map

@RequestMapping("/query3")
	public String query2(Map map,Bookinfo bookinfo) {
		map.put("bookinfo", bookinfoService.getBookinfoById());
		return "index";
	}

4.3 用map穿一個引數到JSP頁面

@RequestMapping("/query3")
	public String query2(Map map,int pageIndex) {
		map.put("pageIndex", pageIndex);
		return "index";
	}