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











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











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 可能冲突

建议简化成以下:
@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