「已注销」 2026-04-21 23:03 采纳率: 33.3%
浏览 8

SpringMVC项目运行异常

初学SpringMVC,遇到问题如图所示,PageServlet.java一直提示无法解析MVC视图“index”,web服务器用的Tomcat,应用程序上下文设置的"/"。是我Thymeleaf的配置有问题吗?求解。IDE为IntelliJ IDEA2026

img

img

img

img

img

img

img

img

img

img

img

  • 写回答

4条回答 默认 最新

  • Thomas.Sir 2026-04-22 01:54
    关注

    1.先确定web.xml 有没有以下配置

    <!-- Spring MVC 核心控制器 -->
    <servlet>
        <servlet-name>springmvc</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</servlet-name>
        <!-- 拦截所有请求,交给Spring MVC处理 -->
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    

    2.如果有,springMVC.xml 视图解析器换成 servlet 试试,如果再有问题,把代码贴出来,方便调试

    <!-- 视图解析器:拼接前缀和后缀,把 "index" 变成 /WEB-INF/views/index.html -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!-- 前缀:视图文件所在目录 -->
        <property name="prefix" value="/WEB-INF/views/"/>
        <!-- 后缀:视图文件扩展名 -->
        <property name="suffix" value=".html"/>
        <!-- 视图类:处理HTML文件 -->
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
    </bean>
    

    3.控制器的 @RequestMapping 可能冲突

    img

    建议简化成以下:

    @Controller
    public class PageServlet {
        // 直接映射到 /index,返回视图名 "index"
        @GetMapping("/index")
        public String index() {
            return "index";
        }
    }
    
    

    4.我看你pom.xml 缺少servlet-api 依赖,加上

    <dependencies>
        <!-- Servlet API -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
    

    5.根据以上几个步骤查找问题,如果还不行就是IDEA有缓存了。按下面步骤处理:
    点击 File → Invalidate Caches... → Invalidate and Restart
    重新编译项目:Maven → clean → compile

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月21日