Переключение перечисления в freemarker
Я думал, что переключение перечисления будет чем-то очень простым в FreeMarker, так что я мог бы написать что-то вроде:
<!-- Doesn't work -->
Dear
<#switch gender>
<#case MALE>
sir
<#break>
<#case FEMALE>
madam
<#break>
<#default>
sir/madam
<#/switch>
Но кажется, что доступ к перечислениям является уродливым и сложным делом. Есть ли правильный, чистый способ включения значений перечисления? Должен ли я хранить его по-другому в своей модели?
Ответы
Ответ 1
Вы можете просто использовать строковое значение перечислений (по крайней мере, с обложкой объекта по умолчанию и в основном с любым другим изменением BeansWrapper
):
<#switch gender>
<#case "MALE"> <#-- note the quotes -->
sir
<#break>
...
Или если в зависимости от toString()
есть проблема (и это может быть), используйте это:
<#switch gender.name()>
<#case "MALE">
sir
<#break>
...