내용으로 건너뛰기
권남
사용자 도구
로그인
사이트 도구
검색
도구
문서 보기
이전 판
역링크
최근 바뀜
미디어 관리자
사이트맵
로그인
>
최근 바뀜
미디어 관리자
사이트맵
추적:
handlebars:handlebars_java
이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요.
====== Handlebars.java ====== * https://github.com/jknack/handlebars.java ===== SafeString ===== Handlebars는 헬퍼가 리턴한 값을 기본적으로 HTML Escape하지만, 헬퍼가 return할 때 이를 ''SafeString''객체로 감싸서 리턴하면 HTML Escape을 하지 않는다. 물론, 해당 Escape에 대한 보안 책임은 헬퍼를 만든 프로그래머가 져야한다. <code java> 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>"); } }); </code> ===== Handlebar javscript precompile ===== * [[http://blog.javarouka.me/2014/08/handlebars-for-java_31.html|Handlebars (for Java) 서버, 클라이언트 동시에 사용하기]] * ''precompile''과 ''embedded'' 사용. ===== Options ===== * ''com.github.jknack.handlebars.Options''의 ''fn'' 객체에서 현재 템플릿 위치에 대한 정보를 얻을 수 있다. * ''options.fn.text()'' : helper 문자열 자체 * ''options.fn.filename()'' : 템플릿 파일 * ''options.fn.position()[0]'' : 현재 호출 위치 line number. * ''options.fn.position()[1]'' : 현재 호출 위치 column number. ===== 중첩 블럭(nested block)에서 상위 컨텍스트 참조 ===== ''%%{{#each}}%%'' 같은 블럭 컨텍스트는 인자로 받은 객체를 새로운 컨텍스트로 만드는데, ''%%{{#each}}%%''가 중첩해서 나오고, 상위 컨텍스트와 하위 컨텍스트에 동일 프라퍼티가 있을 경우 상위 컨텍스트 프라퍼티 접근이 어려울 수 있다. 이때는 **''../propertyName''** 를 사용하면 상위 컨텍스트 프라퍼티에 접근 가능하다. Handlebars 3.x 부터는 block 의 컨텍스트에 명시적으로 이름 지정이 가능해져서 상위 컨텍스트와의 이름 충돌 회피가 더 쉬워졌다. ===== Array/List by index ===== * ''index''에 숫자 대입<code> {{people.[index]}} </code> ===== each with index / key ===== * [[http://handlebarsjs.com/builtin_helpers.html|HandlebarsJs builtin helpers 참조]] * List/Array index <code> {{#each array}} {{@index}}: {{this}} {{/each}} </code> * Map Key <code> {{#each object}} {{@key}}: {{this}} {{/each}} </code>
handlebars/handlebars_java.txt
· 마지막으로 수정됨: 2017/06/19 12:10 저자
kwon37xi
문서 도구
문서 보기
이전 판
역링크
맨 위로