【问题标题】:Switch over enum in freemarker在freemarker中切换枚举
【发布时间】:2011-10-28 17:37:08
【问题描述】:

我认为切换枚举是 FreeMarker 中非常基本的事情,因此我可以编写如下内容:

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

但看来accessing enums是一件丑陋而复杂的事情。是否有一种正确、干净的方式来打开枚举的值?我应该在我的模型中以不同的方式存储它吗?

【问题讨论】:

    标签: java enums freemarker


    【解决方案1】:

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

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

    或者如果依赖toString() 是一个问题(并且可能是),使用这个:

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

    【讨论】:

      猜你喜欢
      • 2016-12-02
      • 2020-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-27
      相关资源
      最近更新 更多