사용자 도구

사이트 도구


handlebars:handlebars_java

문서의 이전 판입니다!


Handlebars.java

SafeString

Handlebars는 헬퍼가 리턴한 값을 기본적으로 HTML Escape하지만, 헬퍼가 return할 때 이를 SafeString객체로 감싸서 리턴하면 HTML Escape을 하지 않는다. 물론, 해당 Escape에 대한 보안 책임은 헬퍼를 만든 프로그래머가 져야한다.

handlebars.registerHelper("blog-list", new Helper<List<Blog>>() {
  public CharSequence apply(List<Blog> list, Options options) {
    String ret = "<ul>";
    for (Blog blog: list) {
      ret += "<li>" + options.fn(blog) + "</li>";
    }
    return new Handlebars.SafeString(ret + "</ul>");
  }
});

Handlebar javscript precompile

Options

  • com.github.jknack.handlebars.Optionsfn 객체에서 현재 템플릿 위치에 대한 정보를 얻을 수 있다.
  • options.fn.text() : helper 문자열 자체
  • options.fn.filename() : 템플릿 파일
  • options.fn.position()[0] : 현재 호출 위치 line number.
  • options.fn.position()[1] : 현재 호출 위치 column number.

중첩 블럭(nested block)에서 상위 컨텍스트 참조

handlebars 같은 블럭 컨텍스트는 인자로 받은 객체를 새로운 컨텍스트로 만드는데, handlebars가 중첩해서 나오고, 상위 컨텍스트와 하위 컨텍스트에 동일 프라퍼티가 있을 경우 상위 컨텍스트 프라퍼티 접근이 어려울 수 있다.

이때는 ../프라퍼티 를 사용하면 상위 컨텍스트 프라퍼티에 접근 가능하다.

Handlebars 3.x 부터는 block 의 컨텍스트에 명시적으로 이름 지정이 가능해져서 상위 컨텍스트와의 이름 충돌 회피가 더 쉬워졌다.

handlebars/handlebars_java.1441074711.txt.gz · 마지막으로 수정됨: 2015/09/01 11:01 저자 kwon37xi