如何在 g:select 中将 i18n 与 Grails/Groovy 枚举一起使用?

2024-01-04

我正在尝试在 Grails/Groovy 枚举上进行 i18n 本地化,

public enum Notification  {
    GENERIC(0),
    CONFIRM_RESERVATION(100),
    CONFIRM_ORDER(200),
    CONFIRM_PAYMENT(300),

    final int id;

    private Notification(int id) {
        this.id = id
    }

    String toString() {
        id.toString()
    }

    String getKey() {
        name()
    }
}

关于我如何实现这一目标有任何提示吗?我尝试将完整的类名等放入本地化中,但这似乎不起作用

<g:select from="${Notification.values()}"  name="notification" valueMessagePrefix="full.path.to.package.Notification"/>

抱歉耽搁了,但我认为这可以帮助你。我在枚举和 i18n 方面遇到了完全相同的问题。这是我找到的解决方案:

按照之前定义的枚举,在 message.properties 文件中为枚举的每个值添加一个条目,例如:

enum.value.GENERIC
enum.value.CONFIRM_RESERVATION
enum.value.CONFIRM_ORDER
enum.value.CONFIRM_PAYMENT

然后,当您想在选择元素中显示枚举的值时,请执行以下操作:

<g:select from="${path.to.package.Notification.values()}"  keys="${path.to.package.Notification?.values()}" name="notification" valueMessagePrefix="enum.value"/>

根据有关 select 标记的 Grails 文档,您放入属性 valueMessagePrefix 中的值将使用后跟一个点 (.),然后是枚举元素的值。这样它就会转到 message.properties 文件并搜索您之前放置的行。

现在,您需要做的另一件事是例如在数据列表中,显示每个记录的枚举值。在这种情况下,您需要执行以下操作:

${message(code:'enum.value.'+fieldValue(bean: someDomainClass, field: "notification"))}

这是如果您有一个域类具有一个通知类型的属性。

希望这有帮助。 再见!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 g:select 中将 i18n 与 Grails/Groovy 枚举一起使用? 的相关文章

  • 在 C# 中使用枚举值反序列化 Dictionary

    我正在尝试序列化 反序列化Dictionary
  • Grails/GGTS 2.4.2 没有将插件放在类路径上?

    我正在尝试将旧的 1 3 Grails 项目更新到最新的 Grails Groovy etc 所以我下载了 Grails 2 4 2 Groovy 2 3 和 Java 1 7 0 65 然后我通过 Import gt Grails 导入了
  • 如何在 Grails 2.4 中外部化 Maven 凭证

    我正在尝试在 Grails 2 4 项目中从使用 Ivy 迁移到使用 Aether 解析器 我遇到的问题与外部化凭证有关 与此相关的信息可以在 Grails 手册中找到 http grails org doc latest guide co
  • 国际化和非 US-ASCII、Latin1 或 Win1252 的密码

    当用户输入最能以 Unicode 或其他非拉丁字符编码表示的内容时 您如何处理服务密码 具体来说 可以使用西里尔字母密码作为Oracle的密码吗 如果密码以 UTF 8 形式提供 您如何根据 Windows 身份验证机制验证用户的密码 我对
  • 只能加载NetBeans中的一些gradle项目

    非常类似于 无法在 NetBeans 中加载 gradle 项目 https stackoverflow com q 17698135 262852但我认为并不完全相同 即使只是因为这个问题的年龄 我看到了 gradle 消息after h
  • 在共享通用插件的两个 Grails 应用程序之间共享配置

    我们将有两个应用程序 它们都需要使用相同的服务 实用程序 代码 配置 我们使用 grailsApplication config 来配置外部服务的 URL 等内容 根据应用程序是否在 dev test qa staging prod 中运行
  • 本地 401 工作,临时服务器得到 302

    我可能不会获得帮助第一次尝试所需的所有信息 但我会尽我所能 并在我们进行过程中对其进行编辑 我有一个使用 Spring Security Core 插件的 Grails 1 3 7 应用程序 我正在编写处理会话超时和 ajax 请求的代码
  • 一般处理枚举的 Scala 类

    我想创建一个通用类来保存枚举的值 并且还允许访问枚举的可能值 以属性编辑器为例 您需要知道属性的当前值 并且还需要能够知道该属性的其他合法值 并且枚举的类型不应该提前知道 您应该能够使用任何类型的枚举 我的第一个想法是这样的 class E
  • AS3/Flash/Flex 中的枚举? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 相对于 AS2 我真正喜欢 AS3 的一件事是它增加了多少编译时类型检查 然而 它似乎有些不足 因为没有可用的类型检查枚举结构 在 A
  • 在 GORM 中重命名复合外键

    我有以下课程 class Catalog static mapping id composite name manufacturer columns name column cat name manufacturer column manu
  • \d 只匹配0-9位数字?

    据我所知 d应该匹配非英文数字 例如 但它在 JavaScript 中不能正常工作 看这个jsFiddle http jsfiddle net xZpam http jsfiddle net xZpam 这是正常行为吗 JavaScript
  • 在 grails 中编写代理

    我正在使用 Gralis 1 3 7 我正在编写一个控制器 需要从另一台服务器获取 PDF 文件并将其返回给客户端 我想以某种相当有效的方式来做到这一点 例如 class DocController def view URL source
  • Symfony2 将复选框值从 0/1 更改为“no”/“yes”

    我创建了一个带有一个复选框的表单 用户设置类型 php public function buildForm FormBuilderInterface builder array options builder gt add newslett
  • 不带破折号的 CliBuilder 参数

    使用 Groovy CliBuilder 理想情况下我希望有一个命令行 如下所示 MyProgram groovy CommandName arg1 arg2 arg3 是否可以使用 CliBuilder 解析提取 CommandName
  • Groovy - 将对象转换为 JSON 字符串

    我非常习惯 Grails 转换器 您可以将任何对象转换为 JSON 表示 就像这样 http grails org Converters Reference http grails org Converters Reference retu
  • OS X - 输入“grails”命令后终端重置

    在我的 bash profile 中 我有以下几行 export GRAILS HOME usr share java grails export PATH PATH GRAILS HOME bin GRAILS HOME 是同一目录中 g
  • 在 Grails 控制台中导入服务?

    如何获取 grails 控制台中的服务 我的业务规则是在服务中实现的 但我无法在 grails 控制台中访问它们 有谁知道如何帮助我 春天ApplicationContext可用为ctx控制台中的变量 您可以使用它来访问 Spring be
  • 当您在 C# 中将枚举强制转换为 int 时,幕后会发生什么?

    我正在寻找用 C 实现模拟器 我考虑的事情之一是创建与其字节值关联的所有操作码的枚举 但是 我想知道考虑到我需要多久访问该字节值才能执行诸如将其用作查找表中的索引等操作 这是否不是一个好主意 当你将 enum 转换为 int 时 会发生什么
  • 如何防止 Json.NET 将枚举转换为字符串?

    下面的课 public class RequestSections RequestBase public RequestSections Command c Dictionary
  • 如何通过groovy动态更新ReadyAPI/SoapUI中的Resource值?

    我的资源采用这种格式 testing 101 getCustomer 99 这里我需要通过 groovy 动态更改 101 和 99 部分 以便我可以在同一测试用例中运行多个值 我研究了 ReadyAPI 的内置功能 但没有那么有帮助 我也

随机推荐

  • 在 Android Studio 中设置 Hello, World 手表应用时遇到问题

    在 Android Studio 中部署包含的 Hello World 手表应用程序的可穿戴版本时 我收到此错误 失败 INSTALL FAILED OLDER SDK Update 从 Reddit 帖子中删除有关尝试 L 的黑客版本的详
  • 是否值得将distinct() 与collect(toSet()) 一起使用

    将流的元素收集到集合中时 同时指定是否有任何优点 或缺点 distinct 在流上 例如 return items stream map distinct collect toSet 考虑到该集合已经删除了重复项 这似乎是多余的 但是它是否
  • Javascript 检测 mouseup 上按住的控制键

    我查了很多资料 似乎找不到满意的解决方案 我希望有人能帮帮忙 当我使用 jQuery 时 我还编写了数千行 JavaScript 所以 纯 JavaScript 解决方案就可以了 我正在尝试确定控制键是否被物理按住mouseup事件 就是这
  • 如果 LINQ 中的列为空,如何忽略“where”和“order by”条件

    我有交易对象列表 并希望根据当前用户所在的视图按特定条件对它们进行排序 我遇到的问题是 为了在 where 子句中添加条件 首先我需要检查它是否为空以防止空指针异常 这会导致列为 null 的记录被过滤掉 我想将它们包含在列表底部 如果该列
  • 如何从“Android终端模拟器”调用Rebol解释器?

    我需要从以下位置调用 Rebol 语言解释器作为运行脚本文件的命令 例如rebol script name reb 所以我不是在寻找仅在 Rebol 中启动的 APK 应用程序REPL http en wikipedia org wiki
  • 使用 Google Closure 的 @typedef 标签

    Google 的 Closure 编译器有一个 typedef 标签 但是可以在代码中使用它们吗 我知道它会起作用 但是它会让人皱眉吗 所以这是我的类型 The plan object s typedef typedef Object Ty
  • C# ListView显示

    伙计们 我是在 C 中实现 ListView 的初学者 我在 c net 中的这些代码遇到问题 我无法弄清楚输出显示的控件中发生了什么 看来我忘记了在 ListView 控件的属性中赋予值的内容 第二列值必须出现在第一列上 这是我的代码 u
  • 字符串初始化的区别

    首先 如果这是一个非常基本的问题 我很抱歉 我只是想知道以下字符串定义之间的区别 String x hello String y new String hello 我知道在 java 中 String 是一个类 它既不是原语也不是包装器 如
  • 如何更改 WCF 服务引用的地址?

    我有一个在内部使用的应用程序 并使用 WCF 在客户端和服务器部分之间进行通信 但是它很快需要部署到服务器名称不同的站点 WCF 服务使用 netTcp 绑定作为 Windows 服务托管 目前 服务的地址是使用 Visual Studio
  • C# - 将文本与图像合并

    我编写了以下代码来合并 2 个图像 我的需求很简单 图像始终具有相同的尺寸 因此不需要定位 我可以稍后处理这个问题 我想知道的是 我可以修改它以将文本标签作为我的 imgFront 合并到图像 imgBack 上吗 最后返回的结果将是一个新
  • azure cdn purge不刷新缓存内容

    我有一个连接到 blob 存储的 Azure CDN Verizon 高级 基于此中的步骤 6 我制定了 2 条规则tutorial https blog lifeishao com 2017 05 24 serving your stat
  • 在键入并保留光标位置时强制 UITextField 小写

    用 Swift 2 编程 我有一个 UITextField 当用户在其中键入内容时 应在键入时自动转换为小写 因此不在表单验证之后 我已经走到这一步了 func textField textField UITextField shouldC
  • SQL 子句与表达式术语

    我与一位队友就以下主题进行了讨论 clause and expression可以互换使用 例如 调用代表某个变量的变量是否正确 常见 expression a b 例如 参与声明SELECT WHERE expression 一个子句 Ed
  • Linq to SQL for WebMatrix(网页)

    我想知道是否可以在基于 webmatrix 的网站 C Razor 等 中使用 Linq to SQL 我喜欢数据库搜索之类的东西 如果我可以使用 Linq to SQL 来实现这一点 那就太棒了 或者至少 将行作为数据集或其他内容返回 然
  • 如何限制列表对象模板侧而不是视图侧

    限制对象的方法之一是向这样的函数添加限制 def ten objects obj Model objects all 0 10 limit to 10 return objects obj 但是 如何在模板内而不是在视图内实现此目的 我知道
  • 什么是EOF!!在 bash 脚本中?

    有一个命令我不明白 custom command lt lt EOF 我想问什么是EOF 在 bash 脚本中 我确实用google找到了EOF 但是google会忽略 自动 所以我找不到 EOF 我知道文件结尾标记 但我不完全知道 的含义
  • iOS 使用 swift 创建通用 Alamofire 请求

    最近我开始学习使用 swift 开发 iOS 应用程序 所以我对它很陌生 我想在 swift 中实现rest api 调用并发现我们可以使用URLRequest 所以我写了generic method调用所有类型 例如get put pos
  • 如何在滑动嵌套recyclerview的cardview时禁用swiperefreshlayout

    当我在 swiperefreshlayout 中稍微向下滑动卡时 它认为我正在尝试刷新 我该如何避免这种情况 如果你有一个嵌套的RecyclerView 例如 命名为recyclerView您可以致电 recyclerView setNes
  • 在tomcat 8.5服务器上安装Godaddy ssl证书

    我正在尝试在我的网站上安装 SSL 证书 我正在使用Godaddy ssl 证书为了这 我已生成 csr 请求证书并将证书上传到我的服务器上 我正在使用 KEYTOOL 来使用所有这些 我从 godaddy 下载了 zip 文件中的三个文件
  • 如何在 g:select 中将 i18n 与 Grails/Groovy 枚举一起使用?

    我正在尝试在 Grails Groovy 枚举上进行 i18n 本地化 public enum Notification GENERIC 0 CONFIRM RESERVATION 100 CONFIRM ORDER 200 CONFIRM