spring配置restful格式url

回忆若风 发布于 2015/05/27 15:49
阅读 1K+
收藏 0

项目中使用了restful格式的url,发生一个奇怪的问题 

当 url格式如: /testController/test/test 是能正常拦截

为 /testController/test 时报302 found错误

web.xml配置

<listener>
    <listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
  </listener>
  <servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:/com/config/spring-servlet.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
  <!-- 解决HTTP PUT请求Spring无法获取请求参数的问题 -->  
    <filter>  
        <filter-name>HiddenHttpMethodFilter</filter-name>  
        <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>  
    </filter>  
    <filter-mapping>  
        <filter-name>HiddenHttpMethodFilter</filter-name>  
        <servlet-name>spring</servlet-name>  
    </filter-mapping>  
  <listener>
    <listener-class>
org.springframework.web.context.request.RequestContextListener
</listener-class>
  </listener>
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
classpath:/com/config/applicationContext.xml,
classpath:/com/config/applicationContext-common.xml
</param-value>
  </context-param>
  <context-param>  
        <param-name>log4jConfigLocation</param-name>  
        <param-value>classpath:/com/config/log4j.properties</param-value>  
    </context-param>  
    <context-param>  
        <param-name>log4jRefreshInterval</param-name>  
        <param-value>60000</param-value>  
    </context-param>  
  
  <filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
      <param-name>forceEncoding</param-name>
      <param-value>true</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

spring-servlet配置

   <!-- 要实现注解注入的类所在包 -->
    <context:component-scan base-package="com.lp.parent.controller" />
    <!--启用springmvc自带转换json-->
    <mvc:annotation-driven />
    <!-- 匹配requestMapping的路径 -->
    <mvc:interceptors>  
        <!-- 多个拦截器,顺序执行 -->  
        <mvc:interceptor>  
           <mvc:mapping path="/*Controller/*" /><!-- 如果不配置或/*,将拦截所有的Controller -->  
           <bean class="com.common.CheckUserInterceptor"></bean>  
        </mvc:interceptor>  
    </mvc:interceptors>  
    <!-- 对静态资源文件的访问 不支持访问WEB-INF目录 -->  
    <mvc:default-servlet-handler />
    <!-- 对转向页面的路径解析。prefix:前缀, suffix:后缀 -->
    <bean id="viewResolver"  
          class="org.springframework.web.servlet.view.InternalResourceViewResolver"  
          p:prefix="/WEB-INF/jsp/"  
          p:suffix=".jsp"   
     />
    <bean  class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" >  
    <property name="messageConverters">  
        <list>  
            <bean class = "org.springframework.http.converter.StringHttpMessageConverter">  
                <property name = "supportedMediaTypes">  
                    <list>  
                        <value>text/plain;charset=UTF-8</value>  
                      </list>  
                </property>  
              </bean>  
          </list>  
    </property>  
</bean> 

加载中
0
c3gd2g
c3gd2g
没有对应的controller 呗
返回顶部
顶部