Spring MVC 3.x入门(一)

1、导入spring的jar包
core/beams(IOC)/web/asm/expression/context+context.support/web.servlet/commons.logging
 
2、配置中央控制器(web.xml)
<servlet>
  <load-on-startup>1</load-on-startup>
  <servlet-name>test</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>

<servlet-mapping>
  <servlet-name>test</servlet-name>
  <url-pattern>*.test</url-pattern>
</servlet-mapping>
 
【关键词】
spring MVC 框架的核心构架
dispatcher Servlet 中央控制器
Controller 子控制器
Handler Mapping 映射器
ViewResult & View
Interceptors
LocalResolver
Validate
 
【spring MVC常用的Controller】
a、直接实现Controller接口
b、AbstractController抽象类
 
3、添加spring配置文件(IOC):[servletName]-servlet.xml
3.1  映射器配置:
--1 impleUrlHandlerMapping,基于请求路径及配置的prop信息分发请求到控制器
eg:
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
  <property name="mappings">
   <props>
    <prop key="请求">控制器id</prop><!--相当于struts2中的result-->
    <prop key="toAddEmp.test">toAddEmpController</prop>
    ...
   </props>
  </property>
</bean>
 
--2 ControllerClassNameHandlerMapping,根据请求路径分发请求到控制器,(ControllerName=PathName+"Controller")
eg:
<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/>
 
--3 BeanNameUrlHandlerMapping,根据请求名称匹配控制器的name属性达到分配请求的目的,eg:xxx.test-控制器bean:name='/xxx.test'
eg:
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
 
3.2  控制器配置
--1 Controller 自定义控制器
eg:
<bean name="/test1.test" id="firstController" class="pg1.FirstController"></bean>
 
--2 ParameterizableViewController 参数化控制器,用于跳转,提供视图名(自定义,配置ViewName属性)
eg:
<bean id="toAddEmpController" class="org.springframework.web.servlet.mvc.ParameterizableViewController">
  <property name="viewName" value="addEmp"></property>
</bean>
 
--3  UrlFilenameViewController 路径解析控制器,用于跳转,提供视图名(自动解析路径,截取请求名。eg:请求:index.test 视图名:index)
eg:
<bean id="testUrlController" class="org.springframework.web.servlet.mvc.UrlFilenameViewController"></bean>
 
--4  CommandController 自动封装表单数据
eg:
<bean id="addEmpController" class="pg1.controller.AddEmpController">
   <!-- 指定数据绑定对象类型 -->
   <property name="commandClass" value="pg1.pojo.Emp"></property>
</bean>

--5  FormeController 专门处理表单请求,自动封装表单数据,
自动匹配处理方法:get请求-referenceData方法/post请求-onSubmit方法
eg:
<bean id="addEmpController2" class="pg1.controller.MyFormeController">
  <property name="commandClass" value="pg1.pojo.Emp"></property>
</bean>

--6  MultiActionController 多个请求对应一个action
eg: 
<bean id="showController" class="pg1.controller.MyMultiController">

  <property name="methodNameResolver">
  <!-- 解析策略1,根据请求名称匹配对应的处理方法,eg:show1.test-show1(); -->
   <bean class="org.springframework.web.servlet.mvc.multiaction.InternalPathMethodNameResolver"></bean>
  
   <!-- 解析策略2,根据请求参数匹配对应的处理方法,eg:xxx.test?methodName=show1-show1();
   <bean class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
    <property name="paramName" value="methodName" />
   </bean>
   -->
  </property>
</bean>
 
3.3  视图解析器配置
eg:
-- 视图解析器,将控制器返回的视图名与配置好的prefix和suffix属性的值拼接成响应路径
<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<!-- 模型处理方式,不可或缺 -->
  <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
  <property name="prefix" value="/WEB-INF/jsp/"></property><!--前缀-->
  <property name="suffix" value=".jsp"></property>><!--后缀-->
</bean>
 
 
 
 
 
 
 
 
posted @ 2013-09-10 09:28  _forward  阅读(208)  评论(0编辑  收藏  举报