在第一篇中,控制器返回一个视图路径,但是这个视图并没有映射到指定页面。这里简单地解决一下这个问题,为以后的测试做准备。关于 Spring MVC 的视图技术,以后再说。
1)添加视图配置。
在 root-context.xml 上下文配置文件中添加如下的 Bean 配置:
<!--
SpringMVC:配置 ViewResolver(视图解析器)
-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp" />
<property name="suffix" value=".jsp" />
</bean>
2)添加一个 jsp 页面。
这个 jsp 页面的名称是:helloWorld.jsp。在路径 /src/main/webapp/WEB-INF/jsp/examples 下:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%
String basepath = request.getScheme() + "://" + request.getServerName() + ":"
+ request.getServerPort() + request.getContextPath() + "/";
%>
<!DOCTYPE html>
<html>
<body>
<h2>Hello World!</h2>
</body>
</html>
3)测试
在浏览器地址了栏输入地址
如果上述过程中没有出错的话,会有如下显示:
4)说明。
这里说一下刚才测试时发生了什么。
在地址栏输入上面的地址并进入后,在 web.xml 中配置的 DispatcherServlet (根据配置 <servlet-mapping>)来处理这个请求。对这个请求进行解析后,(根据控制器中的 @RequestMapping 注解配置)发现类 HelloWorldController 中的方法 helloWorld() 对应着这个请求。在执行完 helloWorld() 之后,返回一个字符串 "/examples/helloWorld"。这个字符串随后被刚才配置的视图解析进行解析。解析结果是:
{ prefix } + 控制器的返回值 + { suffix }
也就是 /WEB-INF/jsp/examples/helloWorld.jsp。之后就向浏览器返回视图解析器得到的这个 jsp 页面,就像你看到的那样。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。