반응형
freemarker 설명 및 기본 예제
# 이 문서는 오라클클럽에서 작성하였습니다.
# 이 문서를 다른 블로그나 홈페이지에 게재하실 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
# 출처 : http://www.gurubee.net/pages/viewpage.action?pageId=1343682&
# 이 문서는 오라클클럽에서 작성하였습니다.
# 이 문서를 다른 블로그나 홈페이지에 게재하실 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
# 출처 : http://www.gurubee.net/pages/viewpage.action?pageId=1343682&
# 이 문서를 다른 블로그나 홈페이지에 게재하실 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
# 출처 : http://www.gurubee.net/pages/viewpage.action?pageId=1343682&
1 FreeMarker 란?
- 프리마커는 자바 서블릿을 위한 오픈소스 HTML 템플릿 엔진이다.
- 프리마커에서는 HTML을 템플릿으로 저장하는데 이들은 결국 템플릿 객체로 컴파일 된다.
- 이 템플릿 객체들은 서블리셍서 제공하는 데이터들을 이용하여 HTML을 동적으로 생성한다.
- 프리마커 객체들은 서블릿에서 제공하는 데이터들을 이용하여 HTML을 동적으로 생성한다.
[*.java]Servlet \+Template[*.ftl] = [*.html]Output
2 FreeMarker 구조
- FreeMarker는 표현의 결과물을 HTML(템플릿)로 관리하고 여기에 자바 객체를 연결하여 최종적인 결과를 만들어낸다.
3 FreeMarker 셋팅
3.1 다운로드
3.2 설치
- freemarker.jar 파일을 WEB-INF/lib 안에 넣는다.
- ecilpse에서는 프로젝트 마다 lib안에 import 시킨다.
3.3 Java 코딩시
import freemarker.template.*;
- FreemarkerServlet를 extends 한 후 Java coding 해주면 된다.
4 FreeMaker 문법
- FreeMarker의 메뉴얼 : http://www.freemarker.org/docs/
FTL tag <# > 주석 <#--주석달기--> 반복문 1. <#list [Object code에서 key값 ] as [별칭할 값]> 2. for(int i=0;i<10;i++) <#list 1..10 as i > ${i} <#assign i=i+1?int> 3. 사이즈를 알고 싶을때.. Key 값이 list 인 경우 <#assign size=list?size> 4. 다른 변수로 정의하고 싶을때에는 <#setting [새로]=[기존]> 5. 변수선언 <#assign x=0> <#--x에 0를 할당해 준것이다. --> x값을 출력하고자 할때 --> ${x} 6. <#macro green> "<@green>"이런식으로 쓴다. 주로 변하지 않는 변수를 이렇게 선언해서 쓴다. 7. 조건문 <#if> 8. int형으로 선언해 주고 싶은때에는 <#assign x=0 ? int>
5 FreeMarker 예제
5.1 TLD 파일
- fmtag.tld (WEB-INF 아래 위치)
<?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE taglib PUBLIC "-Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglib_1_1.dtd"> <taglib> <tlibversion>2.0<.tlibversion> <jspversion>1.1</jspversion> <shortname>FreeMarker JSP Support</shortname> <tag> <name>template</name> <tagclass>freemarker.ext.jsp.FreemarkerTag</tagclass> <bodycontent>tagdependent</bodycontent> <info>Allow evaluation of FreeMarker templates inside JSP</info> <attribute> <name>cashing</name> <required>false</required> </attribute> </tag> </taglib>
5.2 java 파일
- SimpleBean.java (WEB-INF/classes/freemarker/examples/jsp)
- Custom Tag 수행을 위한 Tag Handler Class
package freemarker.examples.jsp; public class SimpleBean { private static String[] arr = {"a","b","c","d"}; private String theString = "Hello from " + toString(); public void setString(String foo) { theString = foo; } public String getString() { return theString; } public String[] getArray() { return arr; } }
5.3 jsp 파일
- freemarker2.jsp (View 파일)
<%@ page contentType="text/html; charset=euc-kr" %> <%@ taglib uri="/WEB-INF/fmtag.tld" prefix="fm" %> <jsp:useBean id="mybean" class="freemarker.examples.jsp.SimpleBean"/> <jsp:useBean id="mybeanreq" class="freemarker.examples.jsp.SimpleBean" scope="request" /> <fm:template> <html> <body> <h1>FreeMarker JSP example</h1> <hr> <p>JSP 페이지</p> <#assign mybean = page.mybean> <#assign mybeanreq = request.mybeanreq> <p>page : ${mybean.string} <#list mybean.array as item> <br>${item} </#list> <p><b>Note:</b> </body> </html> </fm.template>
# 이 문서는 오라클클럽에서 작성하였습니다.
# 이 문서를 다른 블로그나 홈페이지에 게재하실 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
# 출처 : http://www.gurubee.net/pages/viewpage.action?pageId=1343682&