SpringMVC控制器配置文件

时间:2023-02-04 22:06:07
1 首先引入 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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/jee
http://www.springframework.org/schema/jee/spring-jee-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> 2 <!-- 扫描指定包目下所有java类,把标记了@Controller注解的类转换为bean -->
<context:component-scan base-package="com.mvc.spring.web" /> 3 <!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 ,有几种形式-->
A <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/WEB-INF/view/" p:suffix=".jsp" />
B <bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
<property name="prefix" value="/WEB-INF/view/" />
<property name="suffix" value=".jsp" />
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
</bean>
分析 viewClass指定了选择何种视图技术,这里使用JSTL技术;
prefix是视图文件的前缀,即目录名,因为我们把persons.jsp放到了目录/WebRoot/之下,所以只需要配置一个“/”,如果放在目录/WebRoot/目录下的一个名称为view的目录中,这里prefix的值应该为/view/;
suffix是视图文件的后缀,即扩展名,如使用JSP文件,则为“.jsp”。 4 配置servelt上的注解映射
<!-- 配置处理在类级别上的@RequestMapping注解,允许扩展自定义拦截器,在此类的基础上,只需要设置interceptors参数 -->
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
<!-- 配置处理方法级别上的@RequestMapping注解 ,允许扩展自定义的方法注解,例如参数 webBindingInitializer,customArgumentResolver,messageConverters-->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" /> 5 <!-- 表示使用cglib,而非JDK的动态代理,因为Controller没有实现接口,所以要配置这里 -->
<aop:aspectj-autoproxy proxy-target-class="true" /> 6 <!--用于文件上传->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
p:defaultEncoding="utf-8" p:resolveLazily="ture" /> <!---通过该对象能绑定数据验证[自定义也行]与新的ConversionService->
7 <bean id="webBindingInitializer" class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer">
<property name="validator" ref="validator" />
<property name="conversionService" ref="conversionService"/>
</bean> <!---自定义的错误消息文件和错误消息键值,配置ValidationMessages.properties,此时错误消息键值的查找会先到classpath下ValidationMessages.properties中找,找不到再到默认的错误消息文件中找。->
8 <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
<property name="providerClass" value="org.hibernate.validator.HibernateValidator"/>
</bean> <!--jsr303 数据验证,用于验证注解方法上的参数合法性,为了不影响业务代码,提前在执行前验证,因为版本较高,需要hibernate4[已经实现]-->
9 <bean id="methodValidationPostProcessor" class="org.springframework.validation.beanvalidation.MethodValidationPostProcessor">
<property name="validator" ref="validator"></property>
</bean> API(简称,全称,作用)
A InternalResourceViewResolver [视图解析器]
org.springframework.web.servlet.view.InternalResourceViewResolver
网络解析点 :http://7-sun.com/doc/spring2.5_doc_cn/org/springframework/web/servlet/view/InternalResourceViewResolver.html B JstlView [JSTL视图]
org.springframework.web.servlet.view.JstlView C DefaultAnnotationHandlerMapping [映射控制器类上的注解]
org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping D AnnotationMethodHandlerAdapter [映射控制器方法上的注解]
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter E CommonsMultipartResolver [文件上传]
org.springframework.web.multipart.commons.CommonsMultipartResolver F ConfigurableWebBindingInitializer [设置(绑定)某些重要属性spring属性]
org.springframework.web.bind.support.ConfigurableWebBindingInitializer G LocalValidatorFactoryBean [配置ValidationMessages.properties]
org.springframework.validation.beanvalidation.LocalValidatorFactoryBean J MethodValidationPostProcessor [方法参数验证[jsr303]]
org.springframework.validation.beanvalidation.MethodValidationPostProcessor