2017-12-15 12 views
0

저는 Freemarker를 사용하여 전자 메일을 생성하기 시작했습니다.Freemarker는 다음과 같이 통화 우선 순위를 설정합니다.

데이터 모델에는 is 및 get 메소드가 있습니다. Freemarker는 처음에는 자동으로 is-method를 호출합니다.

<#list MainSubject.bookingList as booking> <tr> <td>${booking_index + 1} ${booking.participant.name} </td> </tr> </#list> 

게터 메소드를 호출하는 우선 순위를 설정할 수있는 방법이 있습니까?

답변

1

적어도 2.3.27부터는 변경할 수있는 방법이 없습니다. (나는 BeansWrapper을 실용적으로 수정하는 것을 고려하지 않는다.) isFoo() 또는 getFoo()obj.foo에 대해 호출되어야하는지 여부는 JavaBeans 사양에 따라 더 구체적으로 java.beans.IntrospectorBeansWrapper (따라서 DefaultObjectWrapper)에 따라 결정됩니다. "is"와 "get"메소드를 가진 클래스의 API가 JavaBeans 규칙을 따르지 않는다면 비슷한 문제가 발생할 수 있으므로 그 API를 수정하는 것이 가장 좋습니다.

가능한 해결 방법은 obj.getFoo()과 같은 템플릿에서 getter 메서드를 직접 호출하는 것입니다 (해당 구성에서 메서드가 노출되었다고 가정).