Springmvc_spring学习(一)——数据的接收,共享,转发




	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";
	}

 

你可能感兴趣的:(springmvc)