Scalate Template Engine 이용시 참고점

유지보수 항목에 자바 웹 개발항목도 포함되어 있어서 본의아니게 JSP를 하게 되었다.

여기서 JSP 템플릿 엔진 중 흥미롭고 재밌고 나한테 딱 맞는 템플릿 엔진이 있는데 바로 Scalate 이다.

이녀석은 자바의 스칼라 언어 기반의 템플릿 엔진인데, 자바의 JSP 대신 스칼라의 SSP로 JSP 처럼 꾸밀 수 있고,

또한 node.js 의 템플릿 엔진으로 깔끔하고 간결해서 유명한 jade 엔진도 있다.

닷넷의 경우 jade 템플릿 엔진은 spark 템플릿 엔진에서 지원한다고 한다.

어쨌든 닷넷의 Razor 템플릿 엔진같이 간결한 맛이 없어서 아쉬워지다가 스칼렛에 jade 엔진에 눈맞아 사용하고 있다가 한가지 장벽에 부딪혔다.

바로 web.xml 에서

  <welcome-file-list>
    <welcome-file>index.jade</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
  </welcome-file-list>

이 부분 중 index.jade 파일을 먼저 불러오는데, 파일을 불러오긴 하지만 템플릿 파싱이 안된 쌩으로 출력된다는 것이다.

이 어이없지 아니할 수 없는 부분이 아니던가. 스칼렛 서블릿 세팅은 제공한 서블릿 필터로 세팅만 하면 끝난다.

  <!– START: Scalate config –>
  <filter>
    <filter-name>TemplateEngineFilter</filter-name>
    <filter-class>org.fusesource.scalate.servlet.TemplateEngineFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>TemplateEngineFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <!– END: Scalate config –>

어쨌든 직접 jade 파일 요청시 템플릿 파싱은 되는데 폴더 요청(/)을 통한 템플릿 파싱이 전혀 지원되지 않아서 고심했으나,

해결 방법을 찾았기에 여기에 블로그에 기록한다.

  <!– START: Scalate config –>
  <filter>
    <filter-name>TemplateEngineFilter</filter-name>
    <filter-class>org.fusesource.scalate.servlet.TemplateEngineFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>TemplateEngineFilter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>FORWARD</dispatcher> 
    <dispatcher>REQUEST</dispatcher> 

  </filter-mapping>
  <!– END: Scalate config –>

여기 굵은 부분을 추가하니 말끔하게 해결되었다. http://localhost/ 만 호출해도 jade 템플릿이 파싱되어 출력된다.

여기 관심있는 분들은 Scalate 홈페이지를 참고하시라. jade 템플릿 엔진은 실무에 써도 전혀 손색없다. 스프링 연동도 당연히 지원되니 관심있으면 직접 들어거 Getting Started 메뉴를 참고하시라.

composite / 2012년 12월 22일 / 미분류
태그:, , , , , , ,

답글 남기기

Your email address will not be published / Required fields are marked *