2. 爲 HelloWorld 添加視圖

在第一篇中,控制器返回一個視圖路徑,可是這個視圖並無映射到指定頁面。這裏簡單地解決一下這個問題,爲之後的測試作準備。關於 Spring MVC 的視圖技術,之後再說。html


1)添加視圖配置。

在 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>

2)添加一個 jsp 頁面。

這個 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>

3)測試

在瀏覽器地址了欄輸入地址spring

http://localhost:8080/spring5...瀏覽器

若是上述過程當中沒有出錯的話,會有以下顯示:
圖片描述mvc

4)說明。

這裏說一下剛纔測試時發生了什麼。
在地址欄輸入上面的地址並進入後,在 web.xml 中配置的 DispatcherServlet (根據配置 <servlet-mapping>)來處理這個請求。對這個請求進行解析後,(根據控制器中的 @RequestMapping 註解配置)發現類 HelloWorldController 中的方法 helloWorld() 對應着這個請求。在執行完 helloWorld() 以後,返回一個字符串 "/examples/helloWorld"。這個字符串隨後被剛纔配置的視圖解析進行解析。解析結果是:app

{ prefix } + 控制器的返回值 + { suffix }webapp

也就是 /WEB-INF/jsp/examples/helloWorld.jsp。以後就向瀏覽器返回視圖解析器獲得的這個 jsp 頁面,就像你看到的那樣。jsp

相關文章
相關標籤/搜索