使用springmvc的注意点

1、web.xml中配置DispatcherServlet的拦截路径设置为/ ,配置成*.do的话<mvc:resources />标签将不起作用。

 

 <servlet>
	<servlet-name>mvc-dispatcher</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>/WEB-INF/spring-mvc.xml</param-value>
		</init-param>
	</servlet>
	<servlet-mapping>
		<servlet-name>mvc-dispatcher</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>

 

 

2、springmvc的配置文件里面必须加入 <mvc:annotation-driven/> ,最好是第一行位置,表示向spring容器注入DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter两个bean,它们是spring MVC为@Controllers分发请求所必须的,否则即使配置了<context:component-scan />也是无法访问到Conroller的。

 

3、<context:component-scan /> 需要制定只是扫描@Controller的WEB层等注解,@Service等注解一定要过滤掉,否则,事务不起作用。

例如:

<context:component-scan base-package="com.lyl">
      <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
      <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service" />
</context:component-scan>

 

4、对于一些静态资源,如图片/css/js等文件要采用<mvc:resources  />做映射,否则在DispatcherServlet配置拦截所有路径情况下,这些资源被拦截,作为视图去找,无法定位。

 

<mvc:resources mapping="/static/**"  location="/WEB-INF/static/" />

   请求路径中的/static/,会被ResourceHttpRequestHandler截获并转换成/WEB-INF/static    如:

    

<script type="text/javascript" src="projectPath/static/js/jquery-1.4.2.js"></script>

    会被处理成:projectPath/WEB-INF/static/js/jquery-1.4.2.js

 

  

5、在ContextLoaderListener加载Spring配置文件的时候,最好不要加载springmvc的配置文件,以免重复加载,同时注意声明扫描的注解里面剔除控制层的主键@Controller的。

<context:component-scan base-package="com.lyl">
      <context:exclude-filter type="annotation"
			expression="org.springframework.stereotype.Controller" />
</context:component-scan>

 

 

 

 

 

猜你喜欢

转载自liuyunlong1229.iteye.com/blog/2255550