Spring_MVC 一些基本註釋作用和用法
阿新 • • 發佈:2018-12-15
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";
值得注意的是
- .放到()裡面的任何物件會自動例項化(new)
- 自動DI/IOC(相當於Servlet中寫的request.getParameter("bookid"))
- 會自動共享資料request.setAttribute("bookinfo",bookinfo)
- 這個共享只會共享頁面中輸入進來的資料,比如你只輸入了兩個欄位,其它欄位是不共享的
- 如果傳入的不是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";
}