Spring MVC为root提供404

时间:2013-02-21 04:15:34

标签: spring tomcat spring-mvc

我有一个springmvc应用程序,我主要使用它来提供JSON数据。所有页面都将通过Angular来决定。我有一个index.jsp,我需要能够查看哪个位于WEB-INF目录的根目录。

因为我通过调度程序发送所有内容,所以正在接收并发送对root的请求。由于没有控制器映射到root,因此它被拒绝并抛出404.

我的问题是如何在不中断应用程序其余部分的情况下允许传递index.jsp?

<servlet>
    <servlet-name>cr</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/conf/spring-controllers.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>cr</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

2 个答案:

答案 0 :(得分:1)

index.jsp文件放在webcontext的根目录中。然后使用以下过滤器映射:

<servlet-mapping>
    <servlet-name>cr</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

/映射将获取所有无法解析的请求。当没有其他映射可以找到它时,它基本上可以作为一个捕获。

答案 1 :(得分:0)

我有同样的问题。 web.xml配置:

<servlet>
    <servlet-name>SpringMVC-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:springMVC.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>SpringMVC-dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>
<context-param>
    <param-name>log4jConfigLocation</param-name>
    <param-value>classpath:log4j.properties</param-value>
</context-param>

springMVC.xml config:

<mvc:view-controller path="/" view-name="/pages/index"/>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
    <property name="prefix" value="/WEB-INF/"/>
    <property name="suffix" value=".jsp"/>
</bean>

如果正确,路径/将获取视图文件/WEB-INF/pages/index.jsp,但我收到404错误。 最后,我找到了原因。因为ROOT文件夹中有一个index.html文件。当我删除文件时,它的工作正常。