[Handlebars] Helper & Custom Helper 사용하기
※ 자세한 사항은 핸들바스 홈페이지 참조
아래 예는 스크립트에서 Helper를 등록해서 사용하는 예제이다
fullName이라는 Helper는 person을 파라미터로 받아서 person.firstName + person.lastName을 해서 fullName을 리턴하는 Helper이다.
Helper들은 아래와 같이 핸들바스에서 뷰를 만들기 위해 특별하게 동작하는 메소드이다.
![](https://blog.kakaocdn.net/dn/0TWWJ/btrsRPwRqhM/uT4Bpd28KZDTowgGRfTFCk/img.png)
![](https://blog.kakaocdn.net/dn/bKhGMA/btrsQpSMKr4/zCPR48SHIgk2GdMoi1X3Xk/img.png)
자주 사용되는 Helper 들은 이미 JAR파일 안에 등록되어 있다.
근데 아래와 같이 위에서 본 스크립트가 아닌 자바파일로 되어있다.
즉, 자바파일로도 Helper를 만들고 Handlebars에서 자바 Helper를 불러서 사용할 수 있다
![](https://blog.kakaocdn.net/dn/bKlN2u/btrsMdSLTJU/7LnZRiwsxWiieC9XQRBv60/img.png)
![](https://blog.kakaocdn.net/dn/cCj1dE/btrsQqYoqb1/AdPWuZ5uv1dfkMIkrUiJkK/img.png)
예제를 위해 "\r\n"이라는 한줄을 내려가게하는 문자가 들어오면 HTML의 <br/>로 바꿔주는 Helper를 만들어보자. 이름은 NewLineHelper라고 하겠다.
모든 핸들바스 핼퍼들은 아래의 Helper 인터페이스를 구현해서 만든다
핼퍼들은 registerHelper() 메소드를 사용해서 등록된다.
핼퍼가 Handlebars에서 사용되면 apply메소드가 호출된다
![](https://blog.kakaocdn.net/dn/bsLJhI/btrsRYf1gb4/GlA5GKE2xLVa16I6BCzsCK/img.png)
아래와 같이 NewLineHelper를 구현한다.
※ 주의할 점은, Handlebars.SafeString()으로 한번 꼭 감싸줘야한다.
그래야 <br/>이 "<br/>"이 아닌 HTML로 인식된다
![](https://blog.kakaocdn.net/dn/lancG/btrsMz9DfZw/9wsAQogmRsrQpq7BDC7jqK/img.jpg)
- HandlebarsViewResolver를 등록할때 같이 등록한다
- "newLine"이름으로 NewLineHelper를 등록했다. 핸들바스에서는 {{newLine ...}}로 사용할 수 있다.
![](https://blog.kakaocdn.net/dn/dw9rso/btrsSlvgllH/R6TTOyBC1ve88kztNwevA1/img.png)
- {{newLine testText1}}의 경우 newLine Helper가 testText1에 적용되서 <br/>이 적용된다
- {{testText2}}는 단순히 텍스트만 출력된다.
![](https://blog.kakaocdn.net/dn/SAnuq/btrsOie1x2s/QYtK54ZWCoknJpg3KyN8Mk/img.png)
Custom Helper 를 만들때 Helper 인터페이스를 사용했다.
Helper 인터페이스에서 제공하는 Options를 사용했는데, 이에대해선 나중에 더 공부해야될 것 같다
'Template Engine > Handlebars, Mustache' 카테고리의 다른 글
mustache(템플릿엔진) (0) | 2023.06.01 |
---|---|
[Handlebars] Spring MVC & Handlebars 연동하기 (0) | 2022.02.08 |