什么函数用于格式化/替换Grails / Groovy中字符串中的{0} {1}参
发布时间:2020-12-14 16:30:04 所属栏目:大数据 来源:网络整理
导读:我刚开始使用Groovy / Grails 我注意到您在验证表单时收到的错误消息如下所示: Property [{0}] of class [{1}] cannot be blank 例如,此代码将错误转储到控制台 s.errors.allErrors.each { println it.defaultMessage } 现在,it.arguments包含需要填写的参
我刚开始使用Groovy / Grails
我注意到您在验证表单时收到的错误消息如下所示: Property [{0}] of class [{1}] cannot be blank 例如,此代码将错误转储到控制台 s.errors.allErrors.each { println it.defaultMessage } 现在,it.arguments包含需要填写的参数. 问题是,我在Grails或Groovy文档中找不到基于位置参数(如{0},{1})格式化字符串并替换数组值的方法 我需要类似python的% 格式化这些错误字符串的正确方法是什么,以便正确替换参数? 解决方法
实际上使用标准java.text.MessageFormat API替换这些标记.如果您使用Grail的g:message标签显示消息,如果您传递了合适的args =“…”属性,它将填补空白:
<g:message code="mymessagecode" args="${['size','org.example.Something']}"/> 在某些情况下(在GSP页面内和来自控制器IIRC),你可以像操作一样调用标签: g.message(code:'mymessagecode',args: ['size','org.example.Something']) 请注意,作为消息代码提供的值只是一个符号字符串常量.框架将使用Spring的可重新加载资源包读取实际转换(其中包含“gap”的消息文本). 如果您实际拥有的只是翻译文本,则可以直接调用消息格式化API.参见例如: import java.text.MessageFormat ... args = ["english"].toArray() println(MessageFormat.format("Translation into {0}",args)) // Or - as the method is variadic: println(MessageFormat.format("Translation into {0}","english")) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读