在本地配置SpringMVC.xml的时候,想要测试一下如何跳转内部网页,但是查了一下,网上都是跳转外部网页和访问内部控制器的,花了一段时间测试出来了,把实现步骤写出来,以供参考。
SpringMVC.xml中配置相关视图解析器
<bean class="org.springframework.web.servlet.view.BeanNameViewResolver"/>
注意,如果在配置文件中同时写了省略前后缀的视图解析器InternalResourceViewResolver,需要将BeanNameViewResolver放在InternalResourceViewResolver前面,实测是有加载顺序的!
<!-- 开启跳转视图解析器 -->
<bean class="org.springframework.web.servlet.view.BeanNameViewResolver"/>
<!-- 内部资源跳转语句 class固定 -->
<bean id="myView" class="org.springframework.web.servlet.view.JstlView">
<property name="url" value="index2.html"/>
</bean>
<!-- 外部资源跳转语句 class固定 -->
<bean id="baidu" class="org.springframework.web.servlet.view.RedirectView">
<property name="url" value="https://www.baidu.com"/>
</bean>
<!-- 省略前后缀视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/web/"/>
<property name="suffix" value=".html"/>
</bean>
其中index2.html页面是在webapp下放的文件,如果访问出现500错误,检查是不是value值内加了项目名称,此处跳转页面前面不用加项目名称。
pom.xml中导入支持依赖jar
<plugin> <artifactId>maven-deploy-plugin</artifactId> <version>2.8.2</version> </plugin>
控制层简单语句,返回一个ModeAndView,传入构造方法参数为内部资源的bean id
public class MyController4 extends AbstractController implements Controller {
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
System.out.println("执行成功4");
return new ModelAndView("myView");
}
}
成功页面