Meine Entwicklungsumgebung
Framework: springmvc
Entwicklungstool: springsource-tool-suite-2.9.0
Version: 1.6.0_29
Tomcat-Version: Apache-tomcat-7.0.26
Vorwort: FreeMarker ist eine in der Java-Sprache geschriebene Template-Engine, die Textausgaben basierend auf Templates generiert. FreeMarker ist Web-Container-agnostisch, d. h. es kennt weder Servlets noch HTTP, wenn es im Web ausgeführt wird. Es kann nicht nur als Implementierungstechnologie für die Präsentationsschicht verwendet werden, sondern auch zum Generieren von XML, JSP oder Java usw.
Kurz gesagt zeigt Freemarker die vom Server erhaltenen Informationen auf der Seite in Form einer Vorlage in der Java-Webentwicklung an.
Schritt 1. Stellen Sie das JAR-Paket vor
Maven-Code:
<!-- Freemarker --> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.20</version> </dependency> <!-- ui.freemarker --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>3.2.4.RELEASE</version> </dependency> step2.在src/main/resources/conf目錄下新建Freemarker屬性文件freemarker.properties,此屬性文件定義了Freemarker常用的編碼轉換,代碼如下: tag_syntax=auto_detect template_update_delay=2 default_encoding=UTF-8 output_encoding=UTF-8 locale=zh_CN date_format=yyyy-MM-dd time_format=HH:mm:ss datetime_format=yyyy-MM-dd HH:mm:ss
Schritt 3. In der DispatcherServlet-Kontextkonfigurationsdatei spring-servlet .xml Fügen Sie die für Freemarker erforderliche Konfiguration hinzu. Der Code lautet wie folgt:
<!-- 配置Freemarker屬性文件路徑 --> <bean id="freemarkerConfiguration" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> <property name="location" value="classpath:conf/freemarker.properties" /> </bean> <!-- 配置freeMarker模板加載地址 --> <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> <!-- 視圖解析器會在/WEB-INF/ftl/路徑下掃描視圖文件 --> <property name="templateLoaderPath" value="/WEB-INF/ftl/" /> <property name="freemarkerVariables"> <map> <entry key="xml_escape" value-ref="fmXmlEscape" /> </map> </property> </bean> <bean id="fmXmlEscape" class="freemarker.template.utility.XmlEscape" /> <!-- 配置freeMarker視圖解析器 --> <bean id="freemakerViewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.freemarker.FreeMarkerView" /> <!-- 掃描路徑內所有以ftl結尾的文件 --> <property name="viewNames"> <array> <value>*.ftl</value> </array> </property> <property name="contentType" value="text/html; charset=UTF-8" /> <property name="exposeRequestAttributes" value="true" /> <property name="exposeSessionAttributes" value="true" /> <property name="exposeSpringMacroHelpers" value="true" /> <property name="requestContextAttribute" value="request" /> <!-- 給視圖解析器配置優先級,你可以給之前jsp視圖解析器的值配為2 --> <property name="order" value="1" /> </bean>
Schritt 4. Schreiben Sie die Controller-Datei und die FTL-Datei.
Erstellen Sie ein neues Paket www.asuan.com.controller im src /main/java-Verzeichnis, in Erstellen Sie eine neue HelloWorldController.java unter dem Paket, der Code lautet wie folgt:
package www.asuan.com.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class HelloWorldController { @RequestMapping("/helloWorld") public String helloWorld(Model model) { String word0 = "Hello "; String word1 = "World!"; //將數據添加到視圖數據容器中 model.addAttribute("word0",word0); model.addAttribute("word1",word1); return "helloWorld.ftl"; } }
Erstellen Sie eine neue helloWorld.ftl unter dem in Schritt 3 konfigurierten WEB-INF/ftl-Pfad. Der Code lautet wie folgt:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <h2>${word0}${word1}</h2> </body> </html>
Schritt 5. Stellen Sie das Projekt auf Tomcat bereit und führen Sie es im Browser aus: http://localhost:8080/der von Ihnen festgelegte Projektname /helloWorld.htm
Laufendes Ergebnis: