2.1 注解开发入门案例

修改springmvc的 配置文件

把前面的项目复制一份,修改一个DispatchServlet-Servlet.xml配置文件

 <!-- 1.配置注解扫描位置 -->

<context:component-scan base-package="com.gyf.backoffice.web.controller"/>

       

<!-- 2. 配置处理器映射,通过注解来查找 -->

<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>

<!-- 3.配置注解处理适配器来执行控制器的方法 -->  

<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>

       

<!-- 配置springmvc视图解析器

            视图解析器解析的视频路径为:前缀 + 后缀 -->

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

    <property name="prefix" value="/WEB-INF/views"/>

    <property name="suffix" value=".jsp"/>

</bean>

 

把UserController修改下

SpringMVC的注解开发

 

修改Tomcat运行的jdk版本

因为3.2springmvc注解与jdk1.8不兼容,跑tomat时会报错,如图

SpringMVC的注解开发

 

解决办法1:升级spring到4.0的版本

解决办法2:修改Tomcat运行的jdk版本

SpringMVC的注解开发

 

测试注解配置的访问

SpringMVC的注解开发

 

 

MVC:annotation-driven

代化mvc配置文件

SpringMVC的注解开发

 

 

2.2 RequestMapping讲解

配置请求路径映射路径

写法:

@RequestMapping(“list”)

@RequestMapping(“/list.do”)

@RequestMapping(value=”/list.do”)

@RequestMapping(value = "/list3",method=RequestMethod.POST) 只能使用POST方法

@RequestMapping(value = "/list3",method=RequestMethod.Get) 只能使用GET方法

SpringMVC的注解开发

        

自定义根路径

可以控制器上添加一个RequestMapping,如图

SpringMVC的注解开发

SpringMVC的注解开发

 

2.3接收请求参数

封装参数分析

参数类型有:基本类型,int,String等等基本类型, Pojo类

Struts2参数:基于属性封装,action会添加属性,提供set方法。

 

Springmvc参数封装:基于方法进行封装。

 

 

接收int,String,Date,数组类型

在views/user中提供一个form表单

SpringMVC的注解开发

在UserController提供一个用户注册的方法

SpringMVC的注解开发

 

接收pojo类型

创建一个pojo User类型

SpringMVC的注解开发

配置一个注册方法

SpringMVC的注解开发

springmvc接收参数时不需要像struts那样,在表单标签添加user.username这第一个东西

SpringMVC的注解开发

 

接收包装类型参数

把User写成一个类的属性

SpringMVC的注解开发

添加一个注册方法

SpringMVC的注解开发

修改form表单

SpringMVC的注解开发

 

接收集合List类型参数

在User扩展中添加一个集合

SpringMVC的注解开发

添加一个注册 的方法,参数写UserExt

SpringMVC的注解开发

表单

SpringMVC的注解开发

接收集合Map类型参数

 UserExt上添加一个Map

SpringMVC的注解开发

添加一个注册方法

SpringMVC的注解开发

表单

SpringMVC的注解开发

 

 

2.4 Spring与Struts的区别【面试题】

实现机制:

Struts2是基于过滤器实现的。

Springmvc基于servlet实现。

运行速度:

Servlet比过滤器快。

 

Struts2是多例

每一次请求,都会创建一个Action对象

请求来了以后,struts2创建多少个对象:ActionContext,valuestack,UAction,ActionSuport,ModelDriven

 

Springmvc是单例。

    同一个Controller请求,只会创建一个Controller

 

 

参数封装来分析:

Struts基于属性进行封装,Action有参数属性。

Springmvc基于方法封装,参数是写在Controller的方法。

相关文章: