在第一篇中,控制器返回一个视图路径,可是这个视图并无映射到指定页面。这里简单地解决一下这个问题,为之后的测试作准备。关于 Spring MVC 的视图技术,之后再说。html
在 root-context.xml 上下文配置文件中添加以下的 Bean 配置:java
<!-- 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>
这个 jsp 页面的名称是:helloWorld.jsp。在路径 /src/main/webapp/WEB-INF/jsp/examples 下:web
<%@ 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>
在浏览器地址了栏输入地址spring
若是上述过程当中没有出错的话,会有以下显示:mvc
这里说一下刚才测试时发生了什么。
在地址栏输入上面的地址并进入后,在 web.xml 中配置的 DispatcherServlet (根据配置 <servlet-mapping>)来处理这个请求。对这个请求进行解析后,(根据控制器中的 @RequestMapping 注解配置)发现类 HelloWorldController 中的方法 helloWorld() 对应着这个请求。在执行完 helloWorld() 以后,返回一个字符串 "/examples/helloWorld"。这个字符串随后被刚才配置的视图解析进行解析。解析结果是:app
{ prefix } + 控制器的返回值 + { suffix }webapp
也就是 /WEB-INF/jsp/examples/helloWorld.jsp。以后就向浏览器返回视图解析器获得的这个 jsp 页面,就像你看到的那样。jsp