SpringMVC配置几种方式

来源:互联网 发布:java中时间格式 编辑:程序博客网 时间:2024/06/05 19:08

在springMVC中,有“分发器”、“映射处理器”、“控制器”、“视图解析器”的概念。

简单说一下sprngMVC的处置流程,DispatcherServlet接到请求后,需要将请求送给合适的“控制器”(Controller)处理,但是让哪个控制器处理,由HanderMapping(映射处理器)决定,控制器将处理后的业务对象打包到ModelAndView对象中,接着,Controller(控制器)将带有ModelAndView的请求送回到Dispatcher Servlet,然后交给ViewResolver(视图解析器),让他决定用那种视图来呈现结果。

需要引入的jar

 

1、     配置web.xml文件(a,b两种可同时使用)

a)    配置spring的监听并引入spring配置文件,监听器启动时,会自动加载spring的配置文件:

 

<listener>

          <listener-class>

                   org.springframework.web.context.ContextLoaderListener

         </listener-class>

</listener>

<context-param>

         <param-name>contextConfigLocation</param-name>

         <param-value>

                  classpath:web-context.xml

        </param-value>

</context-param>

 

b)    配置分发器(DispatcherServlet),访问*.htm时候,就会触发此分发器:

 

<servlet>

    <servlet-name>test</servlet-name>   

    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

              <init-param>

                     <param-name>contextConfigLocation</param-name>

                     <param-value>

                     <!--如果用这种方法加载spring配置文件,则不需配spring的监听-->

                     <!--classpath:web-context.xml-->

                     </param-value>

              </init-param>

       <load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

       <servlet-name>test</servlet-name>

       <url-pattern>*.htm</url-pattern>

</servlet-mapping>

 

2、     配置spring文件(web-context.xml)(当没有配置视图解析器时,springmvc会启动默认的视图解析器)

a)    配映射处理器(HandlerMapping),spring的dispatcherServlet使用的默认处理器映射是BeanNameUrlHandlerMapping:

 

<bean id="beanNameUrlMapping" 

     class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"

</bean>

 

b)    配置方法处理请求(MultiActionController),根据页面请求的控制器方法名的映射,处理相应请求时调用该方法:

 

<bean id="methodNameResolver"

       class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">

       <property name="paramName">

              <value>cmd</value>

       </property>

</bean>

 

c)     配置视图解析器(ViewResolver)并引入视图的配置文件(tiles-defs.xml):

 

<bean id="viewResolver"

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

       <property name="viewClass">

              <value>org.springframework.web.servlet.view.tiles.TilesJstlView</value>

       </property>

</bean>

<bean id="tilesConfigurer"

       class="org.springframework.web.servlet.view.tiles.TilesConfigurer">

       <property name="definitions">

              <list>

                     <value>WEB-INF/classes/tiles-defs.xml</value>

              </list>

       </property>

</bean>

 

d)    配置控制层类(Controller)这里的name属性担任了两个责任:即定义bean的名字,还定义需要使用这个控制器处理的URL。由于URL中含有XML的id属性中非法字符 -- “斜杠”,所以用name属性而没有用id

 

<bean name="/testController.htm" class="myh.controller.Test">

       <property name="methodNameResolver">

              <refbean="methodNameResolver"/>

       </property>

</bean>

 

3、     视图配置文件(tiles-defs.xml)

<tiles-definitions>

       <definition name="index"page="/index.jsp" />

</tiles-definitions>

4、     控制层类文件(TestController.Java)

每个控制层的类需继承类MultiActionController

public class Testextends MultiActionController {

      

       public ModelAndView test(HttpServletRequestrequest, HttpServletResponse response){

              System.out.println("-----------------------------------------");

              return newModelAndView("index", null);

       }

      

}

 

5、     页面访问

页面在访问时只需按照(<%=request.getContextPath()%>/testController.htm?cmd=test)这种方式提交,如果是表单提交,提交方式为post

0 0