目录
学习过的mvc框架:Struts2
springMVC就是类似于Struts2的mvc框架,属于SpringFrameWork的后续产品。
SpringMVC的好处
SpringMVC入门
1.自己使用的开发环境
Jdk:jdk1.7
Eclipse:mars
Tomcat:apache-tomcat-7
spring:4.2.4
2.开发步骤
(1)创建Dynamic web项目,01-springmvc
(2)导入SpringMVC独立运行的jar包(和Spring的基本相同,多了一个webmvc)
3.编写TestController类
注意:这里是使用注解,@RequestMapping("hello")里面参数要与你地址栏上面的所写的地址相同,例如hello.action
mav.addObject("msg", "hello springmvc...");表示的意思就是讲后面的数据封装到名字为msg中,
并在页面中使用el表达式进行接收
mav.setViewName("/WEB-INF/jsp/hello.jsp");表示的是将显示哪个界面,并将数据进行传递
4.创建hello.jsp页面
5.创建与配置springmvc.xml核心配置文件
这里配置扫描包是为了注解能生效
6.在web.xml中配置前端控制器
7.通过项目启动
SpringMVC的执行过程
从图中可以看出,一开始请求先经过拦截的url-pattern中,然后经过了核心控制器(前端控制器),然后初始化配置文件,通过配置文件springmvc.xml中的扫描包找到了包下的类,通过配置的注解找到了所在的类,通过RequestMapping找到了要执行的方法为hello,执行方法后将结果响应给用户
注意:我们如果请求中写入的是hello.action,那么就会调用@RequestMapping(“hello”)的方法,如果是hello1.action,那么就会调用@RequestMapping(“hello1”)中的方法,@RequestMapping(“hello”)和方法名不一定要相同,只是为了方便开发,所以最好写相同。
案例:书写一个商城显示的例子
实体类
书写controller
jsp
在页面的显示
SpringMVC架构
框架默认加载组件
1.处理器映射器
从spring3.1版本开始,废除了DefaultAnnotationHandlerMapping的使用,推荐使用RequestMappingHandlerMapping完成注解式处理器映射。
2.处理器适配器
从spring3.1版本开始,废除了AnnotationMethodHandlerAdapter的使用,推荐使用RequestMappingHandlerAdapter完成注解式处理器适配。
注意:映射器与适配器必需配套使用,如果映射器使用了推荐的RequestMappingHandlerMapping,适配器也必需使用推荐的RequestMappingHandlerAdapter。
3.我们可以使用注解驱动来代替映射器和适配器的使用(推荐)
4.配置视图解析器
配置了视图解析器前缀和后缀后在setViewName就可以不用写那么长的一段路径了,直接写itemList
SpringMVC的架构
从图中我们可以看出SpringMVC的执行流程为:
1.用户发起请求到前端控制器
2.前端控制器将请求发送给处理器映射器并返回相应的处理器执行链
3.前端控制器调用处理器适配器并调用其Handler方法,返回ModelAndView给前端控制器
4.前端控制器请求解析视图,由视图解析器返回view对象回前端控制器
5.通过渲染视图并响应给用户
SpringMVC与Mybatis整合
思路:
参数绑定
1.默认支持的参数类型
基于完成需求:点击修改商品时,打开商品编辑页面,展示商品信息
2.绑定简单参数
3.绑定pojo对象
要点:表单提交的name属性必需与pojo的属性名称一致。
4.绑定包装的pojo
要点:通过点(.)传递属性。
pojo:
controller代码:
jsp修改:
注意:解决post乱码问题