1、使用Jsp的时候,不设置任何的前缀,也是一个转发的效果,因为有一个默认的InternalResourceViewResolver视图解析器
前面变为添加webapp变为web工程,导入依赖等操作都一样
下面是springMVC的配置文件,由Thymeleaf视图解析器换成了InternalResourceViewResolver(转发的默认视图解析器)视图解析器,
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
<!-- 自动扫描包 -->
<context:component-scan base-package="com.atguigu.mvc.controller"/>
<!-- 配置InternalResourceViewResolver(请求转发的)视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 视图前缀 -->
<property name="prefix" value="/WEB-INF/templates/"/>
<!-- 视图后缀 -->
<property name="suffix" value=".jsp"/>
</bean>
</beans>
2、因为jsp网页可以直接访问,就不需要像之前搞一个控制器方法设置访问主页的控制器映射
就直接在webapp下面直接创建index.jsp就可以了,当Tomcat启动的时候,默认访问的就是index.jsp。因为Tomcat中也有一个web.xml,工程中也有一个web.xml。Tomcat中的web.xml中有一个欢迎的标签,会直接跳转到webapp下的index页面,部署到Tomcat中所有的工程都有效。
3.在webapp下的WEB-INF下templates中创建success.jsp测试成功标签
4.再创建控制器,@RequestMapping("/success")匹配地址,设置控制器方法,转发到success页面,返回"success",由视图解析器自动添加前缀与后缀。
5.在index.jsp中添加超链接。
此时不能跟Thymeleaf中一样用@{}添加上下文路径
<a th:href="@{/hello/testRequestMapping}">Thymeleaf格式</a><br>
不能直接写超链接,/suceess是以斜线开头的,是绝对路径,而超链接是由浏览器解析的,缺少上下文路径,不能把它写死,因为上下文路径可能会发生变化,所以用动态获取的方式
${pageContext.request.contextpath}(el表达式)
pageContext是最小的域对象,四大域中没有讲的那一个,范围是当前jsp页面的域对象,有一个属性叫request,request中有一个属性叫contextpath。
<a href="${pageContext.request.contextpath}/success">success.jsp</a>