gpt4 book ai didi

spring - Grails:从另一条消息中调用本地化消息

转载 作者:行者123 更新时间:2023-12-01 00:43:54 25 4
gpt4 key购买 nike

来自 Struts/XWorks 我能够做这样的事情

消息属性

myMessage.invalid.fieldvalue=Invalid input for $'{'getText("{0}")'}'
email.label=Email Address

申请代码
getText("myMessage.invalid.fieldvalue",new String[] {"email.label"})
Output: Invalid input for Email Address

所以基本上我传递给消息的参数实际上是另一条消息的代码,我想将它们一起呈现。

我似乎找不到使用 Grails/Spring 消息传递的方法。这可能吗?如果可以,怎么办?

编辑:
为了更清楚地说明我要求这样做的原因之一,请举这个例子。

假设我有 5 个域类,其属性为 emailAddress
要验证 NULL 我必须这样做
myClass1.emailAddress.nullable=Email Address cannot be NULL
myClass2.emailAddress.nullable=Email Address cannot be NULL
myClass3.emailAddress.nullable=Email Address cannot be NULL
myClass4.emailAddress.nullable=Email Address cannot be NULL
myClass5.emailAddress.nullable=Email Address cannot be NULL

我想要做的只是通过覆盖默认验证消息来传递消息
OLD: default.null.message=Property [{0}] of class [{1}] cannot be null

NEW: default.null.message=getMessage({0}) cannot be null
emailAddress=Email Address

所以现在任何时候任何类都有一个名为 emailAddress 的属性。它验证为 NULL 我将收到消息 Email Address cannot be null .没有必要有 5 条消息基本上说同样的事情。如果我有另一个类(class)与属性 emailAddress然后它已经处理好了,我不必复制和粘贴第 6 行。

每当我有具有共享属性名称的类时,我所要做的就是为每个将应用于所有类的属性添加一行
sharedProp1= Shared property 1
sharedProp2= Shared property 2

最佳答案

在 Controller 中时,请调用 message对于您要国际化的参数并将其存储在局部变量中。
然后调用message获取完整消息,并将具有国际化参数值的本地变量添加为该消息的参数。

def emailLabel = message(code: "email.label")
def fullMessage = message(code: 'myMessage.invalid.fieldvalue', args: [emailLabel])

您的 messages.properties 将包含类似
myMessage.invalid.fieldvalue=Invalid input for {0}
email.label=Email Address

关于spring - Grails:从另一条消息中调用本地化消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35949044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com