springMVC.docx
- 文档编号:3253991
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:21
- 大小:22.92KB
springMVC.docx
《springMVC.docx》由会员分享,可在线阅读,更多相关《springMVC.docx(21页珍藏版)》请在冰豆网上搜索。
springMVC
SpringMVC
1springMVC简介:
SpringMVC属于SpringFrameWork的后续产品,已经融合在SpringWebFlow里面。
Spring框架提供了构建Web应用程序的全功能MVC模块。
使用Spring可插入的MVC架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts1,Struts2等。
2使用springMVC
1导入jar包
2在web.xml中配置核心控制器(前端控制器)DispatcherServlet
applicationContext.xml
3在WEB-INF下配置springMVC的配置文件
文件名任意,通常情况下,文件名为核心控制器配置时
当不这样命名时,需要在配置核心控制器是通过
指定
启动spring的注解
annotation-config/> 启动bean扫描 component-scanbase-package="web.controller"/> 启动springMVC注解方式 或 annotation-driven/> 3Controller(控制器) 1@Controller表示这个类是控制层 2@RequestMapping配置Controller的访问路径 加在类上,也要加在方法上 例如: @Controller @RequestMapping(value="userController.do") publicclassUserController{ 这个controller的访问路径为RegisterController.do 3controller中的方法: 返回值类型任意 方法名任意 参数列表任意 建议: 返回String类型----用来做跳转路径 方法要想被访问,必须在方法也添加@RequestMapping @RequestMapping publicStringregister(){ return"index.jsp"; } 4关于@RequestMapping 1加在类上@RequestMapping(value="RegisterController.do") 配置controller的访问路径 2加在方法上@RequestMapping 使得方法可以被访问 3加在方法上@RequestMapping一些其他属性的配置 @RequestMapping(method=RequestMethod.GET) 表示这个方法只有是GET请求时才能访问 4一个controller中有多个方法时,如何区分访问 @RequestMapping(method=RequestMethod.GET,params="method=aaa") 这个方法的访问路径为: HelloWorldController.do? method=aaa 5不在class上配置@RequestMapping,只在方法上配置@RequestMapping 访问路径就是项目名/helloworld/test.do @RequestMapping(value="/helloworld/test") 5controller中获取客户端提交的数据的方式: 1方法中定义HttpServletRequest类型的参数 publicStringregister(HttpServletRequestrequest){ Stringname=request.getParameter(“name”); return"index.jsp"; } @RequestParam("name") 2在方法参数中使用@RequestParam注解 publicStringregister(@RequestParam("name")Stringname,@RequestParam("age")intage){ System.out.println(name); System.out.println(age); @RequestParam("name")中的"name"要和请求参数的key值相同 return"index.jsp"; } 注意: 当请求参数和方法参数同名时,@RequestParam注解可以省略 3使用@PathVariable注解--这种用法比较特殊,少用 /hello/你好/18 @RequestMapping(value="/hello/{name}/{age}") publicStringhello(@PathVariable("name")Stringname,@PathVariable("age")intage){ //省略了class上的@RequestMapping //访问这个方法? ? ? hello/zhangsan/100.do System.out.println(name+"\t"+age); return"/helloworld.jsp"; } 6controller方法中在作用域中设置值带回给客户端 1通过request.setAttribute(); 2通过方法的参数ModelMapmodel publicStringregister(ModelMapmodelMap){ modelMap.put(“key”,Object);--放在request作用域 } 7controller中使用Session 1通过request获取sessionrequest.getSession() 2使用@SessionAttributes @SessionAttributes的使用方式: 必须加在class上 @SessionAttributes({"user","name",.....})@RequestMapping(value="RegisterController.do") publicclassRegisterController{ publicStringregister(ModelMapmodelMap){ modelMap.put("user",user);--放在request作用域 modelMap.put("name","中软高科"); } } modelMap中存的值将会在session中也保存一份 8关于跳转 1返回字符串默认是转发方式 2重定向return“redirect: index.jsp” 3跳转路径前缀后缀的设置 --配置视图 p: prefix="/WEB-INF/view/"p: suffix=".jsp"> --> return“index”将会跳转到/WEB-INF/view/index.jsp 9关于使用ModelAndView 通常用于方法的返回值 publicModelAndViewtest2(){ Stringname=“中软高科”; returnnewModelAndView(newRedirect(“index.jsp”)); returnnewModelAndView(newRedirect(“index.jsp”),”name”,name);--另一种带值得方式 returnnewModelAndView(newRedirectViews(“index.jsp”),map);--map为Map也是用来带值 } 或 publicModelAndViewtest2(){ ModelAndViewmav=newModelAndView(); mav.setViewName(viewName);//设置跳转路径 mav.addObject(obj)//这种设置方式,带的值key为这个对象所属类的类名首字母小写 mav.addObject(“key”,obj) returnmav; } 10@ModelAttribute注解 作用一: 获取请求参数: publicStringregister(@ModelAttributeUseruser,@RequestParam("birthday111")Stringbirthday) 客户端提交的数据会直接封装user中,要保证请求参数的key和user的属性相同 还会将user存入request作用域 对于Date的birthday无法完成直接的赋值,因此单独进行配置 另一个作用: 加在方法上,方法将会在controller中要调用的方法之前执行 @ModelAttribute("myList") publicList System.out
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- springMVC