SpringMVC 跳转页面失败404

SpringMVC跳转页面失败

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

  1. ModelAndView 引用的包不对

    有时候自动导入的时候会选错包类,会将正确的包导成

    import org.springframework.web.portlet.ModelAndView
    

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

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

    import org.springframework.web.servlet.ModelAndView
    
  2. 项目生成时没有将相应的页面编译输出到 target 文件夹

    idea工具,指的就是写的页面,在项目编译生成的时候,没有被编译成功输出到target文件夹,所以一直跳转不成功,因为在输出目录里根本没有页面文件。如:
    SpringMVC 跳转页面失败404

    没有生成对应的文件夹,但是在编译器中不会报错,代码也能成功的指向路径下的页面。

    这时候,如果是基于maven管理的项目,可以在右侧打开maven,使用clean命令,将target文件清空,再使用install重新编译项目输出即可。
    SpringMVC 跳转页面失败404
    SpringMVC 跳转页面失败404

  3. springmvc-*.xml里面的视图解析器不能错

    配置文件中的视图解析器bean要配置正确,而且前缀后缀属性要配置正确,不过这类型的情况,编译器一般会报错,在设置ModelAndView的setViewName方法的时候,会出现没有找到相应路径下文件的警告。
    SpringMVC 跳转页面失败404
    正确的视图解析器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>