模型—視圖—控制器(MVC)軟件設計模式是用於在軟件應用程序內分離關注點的方法,原則上,應用程序邏輯或控制器與用於向用戶或視圖層顯示信息的技術分離,該模型是控制器和視圖層之間的通訊工具。css
在應用程序內,視圖層可使用一種或多種不一樣的技術來渲染視圖,Spring基於Web的應用程序支持各類視圖選項,一般稱爲視圖模板,這些技術被描述爲「模板」,由於它們提供了一種標記語言,用於在服務器端渲染期間公開視圖中的模型屬性。html
如下視圖模板庫與Spring兼容:java
如下示例說明了如何使用JSP和Thymeleaf模板渲染相同的內容。apache
請注意此示例中的JSTL(JavaServer網頁標準標籤庫)表達式。設計模式
<c:url var="hotelsUrl" value="/hotels"/> <form:form modelAttribute="searchCriteria" action="${hotelsUrl}" method="get" cssClass="inline"> <span class="errors span-18"> <form:errors path="*"/> </span> <fieldset> <div class="span-8"> <label for="searchString">SeaString:</label> <form:input id="searchString" path="searchString"/> </div> ... </fieldset> </form:form>
在此示例中,標記與標準HTML集成。服務器
<form action="#" th:object="${searchCriteria}" th:action="@{/hotels}" method="get" class="inline"> <ul th:if="${#fields.hasErrors('*')}" class="errors span-18"> <li th:each="err : ${#fields.errors('*')}" th:text="${err}">Input is incorrect</li> </ul> <fieldset> <div class="span-8"> <label for="searchString">Search String:</label> <input type="text" id="searchString" th:field="*{searchString}" /> </div> ... </fieldset> </form>