SpringMVC跳转页面失败
关于SpringMVC跳转方式失败,使用ModelAndView 或者是 直接返回字符串 都无法跳转到指定页面,可能存在以下几种常见问题
- ModelAndView 引用的包不对
有时候自动导入的时候会选错包类,会将正确的包导成
import org.springframework.web.portlet.ModelAndView
而其中的方法都是一样的,编译器不会出错,如果不注意就会无法跳转。
正确的包应该是,要注意是servlet的包
import org.springframework.web.servlet.ModelAndView
- 项目生成时没有将相应的页面编译输出到 target 文件夹
idea工具,指的就是写的页面,在项目编译生成的时候,没有被编译成功输出到target文件夹,所以一直跳转不成功,因为在输出目录里根本没有页面文件。如:
没有生成对应的文件夹,但是在编译器中不会报错,代码也能成功的指向路径下的页面。
这时候,如果是基于maven管理的项目,可以在右侧打开maven,使用clean命令,将target文件清空,再使用install重新编译项目输出即可。 - 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>