Spring &引用/&引用;映射到/WEB-INF/pages/--为什么?

Spring &引用/&引用;映射到/WEB-INF/pages/--为什么?,spring,Spring,出于某种原因,/WEB-INF/pages似乎已成为根文件夹。任何对/pages/的请求。例如,以下请求转到/pages/index.jsp 这有点问题,因为我还有一个/WEB-INF/secure文件夹,我不知道如何访问它 为什么这是 @RequestMapping("/") public String printWelcome(ModelMap model) { return "index"; } web.xml <web-app version="2.4"

出于某种原因,/WEB-INF/pages似乎已成为根文件夹。任何对/pages/的请求。例如,以下请求转到/pages/index.jsp

这有点问题,因为我还有一个/WEB-INF/secure文件夹,我不知道如何访问它

为什么这是

@RequestMapping("/")
public String printWelcome(ModelMap model) {
    return "index";
}
web.xml

<web-app version="2.4"
         xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

    <display-name>Spring MVC Application</display-name>

    <filter>
        <filter-name>springSecurityFilterChain</filter-name>
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>springSecurityFilterChain</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            /WEB-INF/applicationContext-security.xml
            /WEB-INF/springmvc-config.xml
        </param-value>
    </context-param>

    <servlet>
        <servlet-name>mvc-dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>mvc-dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>


</web-app>

SpringMVC应用程序
springSecurityFilterChain
org.springframework.web.filter.DelegatingFilterProxy
springSecurityFilterChain
/*
org.springframework.web.context.ContextLoaderListener
上下文配置位置
/WEB-INF/applicationContext-security.xml
/WEB-INF/springmvc-config.xml
mvc调度器
org.springframework.web.servlet.DispatcherServlet
1.
mvc调度器
/
按要求编辑:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">

    <context:component-scan base-package="com.springapp.mvc.service"/>

    <mvc:annotation-driven/>
    <mvc:resources mapping="/css/**" location="/css/"/>

    <!--
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/pages/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
    -->

</beans>

我们也能看到您的SpringServletbean配置吗

您可能有一个
InternalResourceViewResolver
指向
/WEB-INF/pages/

例如,查找以下内容:

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
    p:viewClass="org.springframework.web.servlet.view.JstlView"
    p:prefix="/WEB-INF/pages/"
    p:suffix=".jsp" />


我确实有,但我尝试注释掉甚至删除了该部分,但没有成功。尝试恢复配置,但将目录名称更改为/WEB-INF/something\u else/,以确定这是否是机制。如果它能工作,那么您可能会在某个地方有一个文件的缓存副本,所以请进行干净的构建。我将该值更改为“value=“/WEB-INF/something”/“,但它仍在加载/页面,因此您似乎是对的。我试着重新部署,重新启动服务器,并在IntelliJ中执行了一个使现金无效/重新启动的操作,但都没有起到任何作用。那么我到底该如何摆脱缓存版本呢…?使用Tomcat,您可以删除Tomcat工作目录。我不确定您正在使用哪个容器,也不确定IntelliJ如何调用它。您可以将其作为一个单独的问题创建。顺便说一句,您刚才执行的测试并不能真正确定它是缓存版本。我更希望看到/WEB-INF/something/改变映射的结果。但我仍然怀疑缓存版本的配置可能存在。您可以尝试使用Maven或Gradle直接在命令行上构建来查看。