진짜 개발자
본문 바로가기

Web/Template(Thymeleaf, mustache, handlebars

Handlebars - Spring boot Handlebars Custom helper 등록하는 법

728x90
spring boot handlebars custom helper

Spring boot 에서 Custom Helper를 등록하는 방법과, 사용법을 알아보도록 하겠습니다.

 

 

Spring boot 에서 handlebars custom helper 사용법

1. 의존성 추가

build.gradle 파일에 위의 의존성을 추가합니다.

 

 

 

2. Custom Helper 추가

Spring boot에서 custom helper를 추가하기는 굉장히 쉽습니다. class 파일을 만들고, class level에 @HandlebarsHelper 어노테이션을 추가하고, 해당 클래스를 bean으로 등록하면 끝입니다.

 

 

 

3. Custom Helper 메소드 추가

3.1 문자열 출력 helper

간단히 문자열을 출력하기 위한 helper메소드는 CharSequence 를 반환하는 메소드를 만들기만 하면 됩니다.

 

템플릿 엔진이 해당 헬퍼를 인식하는 방법은 {{메소드이름}} 입니다.

 

또한 해당 헬퍼를 통해 html에 뿌려질 데이터는 메소드가 반환하는 문자열 입니다.

 

 

HTML

 

 

결과


 

 

 

 

3.2 HTML 반환 helper

때로는 helper를 통해서, html을 출력하도록 해야할 때도 있습니다. 이때는 SafeString을 반환하도록 하면 됩니다.

 

위와 같이 반환 타입을 SafeString으로 하며, return 값역시, SafeString을 반환하되, 매개변수로 html코드를 문자열 타입으로 입력해주면 됩니다.

 

 

HTML

 

 

결과

 

 

 

 

 

 

4. Helper 메소드에 매개변수 넘겨주기

4.1 기본 타입

매개변수를 넘겨주는 방법은 간단합니다. html에서 helper를 사용시 공백을 구분자로 하여, 매개변수를 전달하면 됩니다. 위의 경우 helper에 "param1", 2 를 전달합니다.

 

 

helper 메소드에 위와 같이 타입에 맞게 매개변수를 추가해주면 됩니다.

 

 

결과



 

 

4.2 객체

우선 model에 담아줄 클래스를 생성합니다.

 

controller에서 model에 child 객체를 담아줍니다.

 

helper에서는 매개변수로 Child타입을 받도록 하면 됩니다.

 

객체를 매개변수로 넘길때에는, model에 담긴 객체의 키값을 그냥 전달해주기만 하면 됩니다.

 

결과


 

 

 

4.3 리스트에 담긴 객체

List에 담긴 객체를 파라미터로 넘길 때에는 each 안에서 this를 이용하면 됩니다.

 

 

결과