SpringMVC控制器配置文件
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