2011-08-17 53 views
14

我认为切换枚举会是这样的FreeMarker的非常基本的,这样我就可以写的东西,如:开关在枚举在freemarker中

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

但似乎accessing enums是一个丑陋的和复杂的事情。有没有一个适当的,干净的方式来打开一个枚举的值?我应该在模型中以不同的方式存储它吗?

回答

15

你可以只使用枚举的字符串值(至少默认的对象包装,基本上与其他任何BeansWrapper变化太):

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

或者,如果根据toString()是一个问题(和它可以),使用这个:

<#switch gender.name()> 
    <#case "MALE"> 
     sir 
     <#break> 
...