ホームページ  >  記事  >  Java  >  Freemark を Java Spring と統合するための詳細な手順

Freemark を Java Spring と統合するための詳細な手順

高洛峰
高洛峰オリジナル
2017-01-05 13:57:581458ブラウズ

私の開発環境
フレームワーク: springmvc
開発ツール: springsource-tool-suite-2.9.0
バージョン: 1.6.0_29
tomcat バージョン: apache-tomcat-7.0.26
前書き: FreeMarker は Java 言語で書かれていますテンプレート エンジンテンプレートに基づいてテキスト出力を生成します。 FreeMarker は Web コンテナに依存しません。つまり、Web 上で実行するときにサーブレットや HTTP を認識しません。プレゼンテーション層の実装技術として使用できるだけでなく、XML、JSP、Java などの生成にも使用できます。
要するに、Freemark は Java Web 開発においてサーバーから取得した情報をテンプレートの形式でページ上に表示します。

step1. jar パッケージ

java Spring整合Freemarker的详细步骤

Maven コードを導入します:

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

step3. DispatcherServlet コンテキスト設定ファイル spring-servlet.xml に Freemark に必要な設定を追加します。コードは次のとおりです。コントローラー ファイルと ftl ファイルを作成します。

src/main/java ディレクトリに新しいパッケージ www.asuan.com.controller を作成し、そのパッケージの下に新しい HelloWorldController.java を作成します。 コードは次のとおりです。

<!-- 配置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>

を作成します。ステップ 3 で設定した WEB-INF/ftl パスの下に新しい helloWorld を追加します。ftl、コードは次のとおりです:

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";
    }
}

step5. 実行してデバッグします

プロジェクトを Tomcat にデプロイして実行し、ブラウザでアクセスします: http:// localhost:8080/設定したプロジェクト名/helloWorld.htm

実行結果:

java Spring整合Freemarker的详细步骤Freemarker を Java Spring と統合する方法の詳細な手順については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。