1.1.以对象的方式接收数据
1.2.以变量的方式接收数据
1.3.原生request,response接收数据
1.4.改变参数名接收数据
2.对象注解-改变共享时的名字
4.session共享
5.1无条件查询出集合
5.2通过id查询
5.3通过id查询-map
一,接收页面数据
1.1以对象方式接 页面中参数的名字与JAVABEAN中保持一致
//BookinfoController.java
//1.1以对象方式接 页面中参数的名字与JAVABEAN中保持一致
@RequestMapping("/add")
public String add(Bookinfo bookinfo) {
//1.放到()里面的任何 对象 会自动实例化(NEW)
//2.自动DI/IOC(相当于以前SERVLET中写的request.getParameter("bookid"))
//3.会自动共享数据(request.setAttribute("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.2.以变量的方式接 页面中参数的名字与变量中保持一致
@RequestMapping("/add2")
public String add2(String bookid,String bookname,String bookprice,String 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) {
System.out.println(request.getParameter("bookid"));
System.out.println(request.getParameter("bookname"));
System.out.println(request.getParameter("bookprice"));
System.out.println(request.getParameter("bookimg"));
return "index";
}
1.4.接收页面数据,但要改参数名字
//@RequestParam("abc"),指定页面参数的名字为abc
//指定页面请求所带的参数的参数名(当()中参数名与页面参数名不同时使用)
@RequestMapping("/page")
public String page(@RequestParam("page") int pageIndex) {
System.out.println("页数:"+pageIndex);
return "index";
}
二,对象注解
//@ModelAttribute("abc"),这个注解的意思是:request.setAttribute("abc",bookinfo);
//@ModelAttribute,不写其它也写了这个注解,request.setAttribute("bookinfo",bookinfo);
//所以,如果是下面这个方法的写法,到index.jsp页面得到数据的方式应该是:${abc.bookid}
@RequestMapping("/add4")
public String add4(@ModelAttribute("abc") Bookinfo bookinfo) {
System.out.println(bookinfo.getBookid());
System.out.println(bookinfo.getBookname());
System.out.println(bookinfo.getBookprice());
System.out.println(bookinfo.getBookimg());
return "index";
}
三,转发
//request.getRequestDispatcher("/index.jsp").forward(request,response);
return "index";
//response.sendRedirect("/index.jsp");
//return "redirect:../index.jsp";
四,sesion共享
//默认共享为request,如果想让这个bookinfo共享范围提升为session的,在类上方的注解最后面加上
//@SessionAttributes
@RequestMapping("/add5")
public String add5(Bookinfo bookinfo) {
return "index";
}
//@SessionAttributes("bookinfo"),意思是session共享对象bookinfo,
//也可共享多个对象,@SessionAttributes("bookinfo1","bookinfo2","bookinfo3")
五,从数据库中查询并传到jsp页面
//5.1.从数据库中查询一个集合出来,并传到JSP页面去
@RequestMapping("/query")
public String query(ModelMap map) {
map.addAttribute("bookinfos", bookinfoService.getBookinfos());
return "index";
}
//5.2.从数据库查询一个对象出来,并传到JSP
@RequestMapping("/query2")
public String query2(ModelMap map, Bookinfo bookinfo) {
map.addAttribute("bookinfo", bookinfoService.getBookinfoById());
return "index";
}
//5.3从数据库查询一个对象出来,并传到JSP,用Map,
//put与addAttribute作用类似,都是共享数据到jsp页面(默认为request共享)
@RequestMapping("/query3")
public String query3(Map map,Bookinfo bookinfo) {
map.put("bookinfo", bookinfoService.getBookinfoById());
return "index";
}
//5.4从数据库查询一个对象出来,并传到JSP,用Map
@RequestMapping("/query4")
public String query4(Map map,int pageIndex) {
map.put("pageIndex", pageIndex);
return "index";
}