>Java >java지도 시간 >Freemarker를 Java Spring과 통합하기 위한 세부 단계

Freemarker를 Java Spring과 통합하기 위한 세부 단계

高洛峰
高洛峰원래의
2017-01-05 13:57:581493검색

내 개발 환경
프레임워크: springmvc
개발 도구: springsource-tool-suite-2.9.0
버전: 1.6.0_29
tomcat 버전: apache-tomcat-7.0.26
머리말: FreeMarker는 Java 언어로 작성된 템플릿 엔진으로, 템플릿을 기반으로 텍스트 출력을 생성합니다. FreeMarker는 웹 컨테이너에 구애받지 않습니다. 즉, 웹에서 실행될 때 서블릿이나 HTTP에 대해 알지 못합니다. 프리젠테이션 계층의 구현 기술로 사용될 수 있을 뿐만 아니라 XML, JSP 또는 Java 등을 생성하는 데에도 사용할 수 있습니다.
간단히 말하면 Freemarker는 Java 웹 개발 시 서버에서 얻은 정보를 템플릿 형태로 페이지에 표시합니다.

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

DispatcherServlet 컨텍스트 구성 파일 spring-servlet .xml Freemarker에 필요한 구성을 추가합니다. 코드는 다음과 같습니다.

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

step4. 컨트롤러 파일과 ftl 파일을 작성합니다.
src에 새 패키지 www.asuan.com.controller를 만듭니다. /main/java 디렉토리, 패키지 아래 Create a new HelloWorldController.java에서 코드는 다음과 같습니다.

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

3단계에서 구성한 WEB-INF/ftl 경로 아래에 새로운 helloWorld.ftl을 생성하고, 코드는 다음과 같습니다.

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

5단계.실행 및 디버깅
Tomcat에 프로젝트를 배포하고 실행합니다. 브라우저에서 http://localhost:8080/설정한 프로젝트 이름을 방문합니다. /helloWorld.htm
실행 결과:

java Spring整合Freemarker的详细步骤

Freemarker와 Java Spring을 통합하는 자세한 단계는 PHP 중국어 웹사이트를 참고하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.