Переключите enum в freemarker - PullRequest
       22

Переключите enum в freemarker

14 голосов
/ 17 августа 2011

Я думал, что переключение перечисления будет чем-то очень простым в FreeMarker, так что я мог бы написать что-то вроде:

<!-- Doesn't work -->
Dear
<#switch gender>
    <#case MALE>
        sir
        <#break>
    <#case FEMALE>
        madam
        <#break>
    <#default>
        sir/madam
<#/switch>

Но, похоже, доступ к перечислениям - уродливый и сложный вопрос. Есть ли правильный, чистый способ включить значения перечисления? Должен ли я хранить его по-другому в моей модели?

1 Ответ

15 голосов
/ 17 августа 2011

Вы можете просто использовать строковое значение перечислений (по крайней мере, с помощью обёртки объекта по умолчанию и в основном с любым другим вариантом BeansWrapper):

<#switch gender>
   <#case "MALE"> <#-- note the quotes -->
      sir
      <#break>
...

Или, если зависимость от toString() является проблемой (и может быть), используйте это:

<#switch gender.name()>
   <#case "MALE">
      sir
      <#break>
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...