在 freemarker 中切换 enum

发布于 2024-11-30 12:01:28 字数 487 浏览 1 评论 0原文

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

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

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

I thought that switching over an enum would be something very basic in FreeMarker, so that I could write something like:

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

But it seems that accessing enums is an ugly and complicated matter. Is there a proper, clean way to switch on the values of an enum? Should I store it differently in my model?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

谁人与我共长歌 2024-12-07 12:01:28

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

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

或者如果取决于 toString() 是一个问题(也可能是),使用这个:

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

You could just use the string value of the enums (at least with the default object wrapper, and basically with any other BeansWrapper variation too):

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

Or if depending on toString() is a problem (and it could be), use this:

<#switch gender.name()>
   <#case "MALE">
      sir
      <#break>
...
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文