SpringMVC跳转页面失败

关于SpringMVC跳转方式失败,使用ModelAndView 或者是 直接返回字符串 都无法跳转到指定页面,可能存在以下几种常见问题

  1. ModelAndView 引用的包不对
    有时候自动导入的时候会选错包类,会将正确的包导成
import org.springframework.web.portlet.ModelAndView

而其中的方法都是一样的,编译器不会出错,如果不注意就会无法跳转。

正确的包应该是,要注意是servlet的包

import org.springframework.web.servlet.ModelAndView
  1. 项目生成时没有将相应的页面编译输出到 target 文件夹
    idea工具,指的就是写的页面,在项目编译生成的时候,没有被编译成功输出到target文件夹,所以一直跳转不成功,因为在输出目录里根本没有页面文件。如:

    没有生成对应的文件夹,但是在编译器中不会报错,代码也能成功的指向路径下的页面。
    这时候,如果是基于maven管理的项目,可以在右侧打开maven,使用clean命令,将target文件清空,再使用install重新编译项目输出即可。
  2. springmvc-*.xml里面的视图解析器不能错
    配置文件中的视图解析器bean要配置正确,而且前缀后缀属性要配置正确,不过这类型的情况,编译器一般会报错,在设置ModelAndView的setViewName方法的时候,会出现没有找到相应路径下文件的警告。

    正确的视图解析器bean配置如下:
<!-- 对模型视图名称的解析,即在模型视图名称添加前后缀(如果最后一个还是表示文件夹,则最后的斜杠不要漏了) 使用JSP-->
    <!-- 默认的视图解析器在上边的解析错误时使用 (默认使用html)- -->
    <bean id="defaultViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!--设置JSP文件的目录位置-->
        <!--配置前缀属性路径-->
        <property name="prefix" value="/WEB-INF/views/"/>
        <!--配置后缀属性路径-->
        <property name="suffix" value=".jsp"/>
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
    </bean>