SpringMvc.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
(一) 视图解析器
<!-- 1.视图解析器: 负责页面的跳转-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!--配置基本的信息 前缀名,后缀名-->
<!--配置前缀名-->
<property name="prefix" value="/pages/"/>
<!--配置后缀名-->
<property name="suffix" value=".jsp"/>
</bean>
<!-- 2.扫描控制器所在包 -->
<context:component-scan base-package="com.itheima"/>
(二) SpringMVC注解驱动
<!--SpringMvc注解驱动, 起作用:启动springmvc二大组件: 处理器的映射器, 处理器的适配器-->
<!--RequestMappingHandlerMapping、RequestMappingHandlerAdapter-->
<mvc:annotation-driven/>
(二) 解决SpringMVC项目静态资源无法访问
<!--DefaultServlet的处理器,用于解决SpringMVC项目 全局的静态资源无法访问的问题-->
<mvc:default-servlet-handler/>
(三) 请求参数类型转换器
<!--
前端传递日期类型(2019-07-01)到后端,但是SpringMVC无法转换字符串为Date日期类型。
这时我们可以通过自定义类型转换器,实现把请求参数值转换为指定的类型-->
<!--1. 创建类型转换器-->
<!-- StringToDateConverter自定义的类型转换器 实现Converter<String,Date>接口
public class StringToDateConverter implements Converter<String,Date> {
}
-->
<bean id="stringToDateConverter" class="com.itheima.utils.StringToDateConverter"/>
<!--2. 把类型转换器交给类型转换的工厂, 一个类型转换器的工厂是会有很多的类型转换器的。-->
<bean id="conversionFactory" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<set>
<!--以前我们set赋值是使用<value>标签,因为因为set集合存储的是String,现在我们存储的是一个个的对象,所以要求使用ref标签-->
<ref bean="stringToDateConverter"/>
</set>
</property>
</bean>
<!--3. 把类型转换交给注解驱动去启动该工厂-->
<!--注解驱动,目前加不加都不会报错, 起作用:启动springmvc二大组件: 处理器的映射器, 处理器的适配器-->
<mvc:annotation-driven conversion-service="conversionFactory"/>
(四) springmvc的文件上传解析器CommonsMultipartResolver
<!--配置文件上传解析器
注意: 文件上传解析器的id值一定要: multipartResolver
-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!--单位是字节 限制10M-->
<property name="maxUploadSize" value="10485760"/>
</bean>
(五) SpringMvc自定义异常处理类 实现HandlerExceptionResolver接口
<!--单独配置异常的处理类-->
<bean id="自定义的异常处理类" class="com.itheima.utils.MyExceptionHandler"/>
<!-- 或者在自定义的异常处理类上使用注解@Component 然后开启IOC包扫描
<context:component-scan base-package="com.itheima"/>
-->
(六) SpringMVC自定义拦截器类 实现HandlerInterceptor接口
<!--
自定义拦截器类 中的方法 preHandle() 如果返回的为False,则不允许后面的其他方法执行,包括配置的path /findAll方法
-->
<!--配置拦截器-->
<mvc:interceptors>
<!--配置单个的拦截器-->
<mvc:interceptor>
<!--拦截的路径
/* : 拦截所有,但是只能匹配一级路径
/** :拦截所有,但是是可以匹配多级的路径。
-->
<mvc:mapping path="/findAll"/>
<bean class="com.itheima.utils.Demo1Intercepter"/>
</mvc:interceptor>
<!--配置多个的拦截器-->
<mvc:interceptor>
<!--拦截的路径
/* : 拦截所有,但是只能匹配一级路径
/** :拦截所有,但是是可以匹配多级的路径。
-->
<mvc:mapping path="/**"/>
<bean class="com.itheima.utils.Demo2Intercepter"/>
</mvc:interceptor>
</mvc:interceptors>
</beans>