Java 의 TemplateLibrary. FreeMarker 와 함께 현업에서 자바 웹 프로그래밍시에 많이 이용. JakartaStruts - VelocityTools 조합으로 많이 이용됨. http://jakarta.apache.org/velocity/ download : http://jakarta.apache.org/site/binindex.cgi#velocity === Very Simple Example === {{{~cpp // SpikeVelocity.java import java.io.OutputStreamWriter; import java.io.Writer; import java.util.Properties; import org.apache.velocity.Template; import org.apache.velocity.VelocityContext; import org.apache.velocity.app.Velocity; public class SpikeVelocity { public static void main(String[] args) throws Exception { Properties prop = new Properties(); // Velocity 한글 문제 처리 : properties 셋팅 필요. prop.setProperty("input.encoding" ,"euc-kr"); prop.setProperty("output.encoding" ,"euc-kr"); Velocity.init(prop); // properties 화일(velocity.properties) 를 선택할 수도 있음. // 해당 모델에 데이터를 채우는 부분 VelocityContext con = new VelocityContext(); con.put("data1", "데이터 첫번째"); // 데이터 형틀 지정. Template tmpl = Velocity.getTemplate("./tmpl/simple.vm"); // 최종 출력 : System.out 에 출력함. Writer out = new OutputStreamWriter(System.out); tmpl.merge(con, out); out.flush(); } } }}} simple.vm 화일 - template. {{{~cpp #set ($name = "hahaha") $name:$name$name 한글 테스트. $data1 }}} === Plugin === Veloeclipse - http://propsorter.sourceforge.net/veloeclipse/ DreamWeaver Plugin - http://java.techedu.net/phpBB2/viewtopic.php?t=138 - 아아.. 이런 문서 먼저 만들어주신 분에게 참 감사하다는. :) === StrutsAndVelocityIntegration === === 삽질 조심 : Velocity 에서의 연산 === Velocity 에서 연산을 할 때에는 반드시 각 연산 당 스페이스를 주어야 한다!!! {{{~cpp #set ($prevNo = $pageNo - 1) (O) #set ($prevNo=$pageNo-1) (X) }}}