认为这会更容易......想象一下<g:select />
像这样:
<g:select name="type.id" from="${Type.list()}"
value="${domainInstance?.type?.id}" />
有两个这样的域类(如果这些人造类不是没有错误,请原谅我)
class Domain {
Type type
}
class Type {
String name
}
我现在想翻译选择元素的条目。下面的代码首先看起来不错:
<g:select name="type.id" from="${Type.list()}"
valueMessagePrefix="type.name"
value="${domainInstance?.type?.id}" />
messagebundle 中的条目如下所示:
type.name.type1 = red
type.name.type2 = green
问题:不仅文本被翻译,选项键也被翻译!
所以我尝试添加一个optionKey='id'
:
<g:select name="type.id" from="${Type.list()}"
valueMessagePrefix="type.name"
value="${domainInstance?.type?.id}"
optionKey='id' />
这将按键切换到了 id - 太棒了,但是文本也切换到了 id :-(
知道如何解决这个问题吗?
感谢girls开源,我刚刚查了代码:http://grails.org/doc/latest/ref/Tags/select.html#select http://grails.org/doc/latest/ref/Tags/select.html#select
似乎只要使用 optionKey 或 optionValue,valueMessagePrefix 就会被忽略。但 optionValue 可以采用闭包:
<g:select name="type.id" from="${Type.list()}"
value="${domainInstance?.type?.id}"
optionKey="id"
optionValue="${ {name->g.message(code:'type.name'+name) } }"/>
至少,这是有效的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)