m0_73926939 2025-04-21 23:03 采纳率: 0%
浏览 15

springMVC无法跳转jsp

如图,SpringMVC及DispatcherServlet的配置文件都没有问题,但controller中就是无法跳转至jsp,只能在浏览器页面返回字符串
我的DispatcherServlet配置:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <servlet>
        <servlet-name>dispatcherServlet</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>dispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

我的SpringMVC配置:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       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="org.example.springmvcdemo.Controller"/>
    <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/templates"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>

    <mvc:annotation-driven/>


</beans>

img

可就是不会跳转至helloMVC.jsp

  • 写回答

2条回答 默认 最新

  • 紫雾凌寒 新星创作者: 人工智能技术领域 2025-04-22 09:53
    关注

    让 “紫雾凌寒” 来帮你回答,本回答结合 DeepSeek

    如果还有问题,请评论或点击头像私信,如果有帮助到您, 请关注、采纳、点赞

    1. 关键点分析:
      - 从描述来看,SpringMVC配置文件无问题,但Controller无法跳转JSP只能返回字符串。这很可能是视图解析器配置不当或者缺少相关依赖导致无法正确解析JSP视图。
    2. 解决方案:
      - 首先,确保已经添加了JSP相关的依赖,比如在Maven项目中,需要在pom.xml中添加以下依赖:
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <scope>provided</scope>
    </dependency>
    
    • 然后,检查SpringMVC的视图解析器配置。假设你的springmvc - servlet.xml文件中视图解析器配置如下:
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB - INF/views/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
    
    • 在Controller中,正确返回视图名来进行跳转。例如:
    @Controller
    public class MyController {
        @RequestMapping("/test")
        public String test() {
            return "test";// 这里的test对应/WEB - INF/views/test.jsp
        }
    }
    
    1. 多种解决方案优缺点:
      - 添加依赖
      • 优点:这是基础步骤,如果缺少依赖,整个JSP相关功能都无法正常工作,添加后能确保项目有解析JSP的基本环境。
      • 缺点:如果已经添加过,再次添加可能会引入版本冲突等问题,不过一般在配置好版本管理工具(如Maven的dependencyManagement)后能较好解决。
      • 检查视图解析器配置
      • 优点:视图解析器配置是SpringMVC跳转JSP的关键,如果配置错误,能直接定位并解决问题。
      • 缺点:如果配置看起来正确,但还是不行,可能会陷入排查误区,比如忽略了其他配置或者代码逻辑问题。
    2. 总结:
      - 首先要确保添加了JSP相关依赖,然后仔细检查视图解析器配置,确保其前缀、后缀等配置正确,并且Controller返回的视图名能正确匹配到实际的JSP文件路径。通过这两个方面的检查和配置,通常能解决SpringMVC无法跳转JSP的问题。

    希望以上解答对您有所帮助。如果您有任何疑问,欢迎在评论区提出。

    评论

报告相同问题?

问题事件

  • 创建了问题 4月21日