Grails - message

Grails - message

获取 i18n 配置

  • 在 message.properties 中定义 message 信息,然后再页面上直接使用。
// 取出 i18n 中配置的 accountCity.label 内容放置到 entityName 变量中,如果没取到,就设置为 AccountCity。
// 然后就可以在当前的 GSP 页面上使用这个变量。
<g:set var="entityName" value="${message(code: 'accountCity.label', default: 'AccountCity')}" />
// 直接将 message 插入到页面中
<g:message code="default.home.label"/>
<g:message code="default.button.create.label"/>
// 在JS里面使用统一的国际化 message
<script>
alert(<g:message code="js.success.save"/>)
</script>

校验 Domain

  • 在 Controller 中添加mesage内容,将两个内容填充到变量里面,第一个是estate.errors.allErrors.head().objectName,第二个是estate.errors.allErrors.head().field
if (estate.validate())
{
estate.save flush: true
} else
{
flash.message = message(code: 'default.blank.message', args: [estate.errors.allErrors.head().objectName, estate.errors.allErrors.head().field])
redirect(controller: "collateral", action: "edit", params: [id: collateral.id])
return
}
  • 然后跳转到指定页面:redirect(controller: "collateral", action: "edit", params: [id: collateral.id]) ,在页面上显示出异常信息
<g:if test="${flash.message}">
<div class="message" collateral="status">${flash.message}</div>
</g:if>

校验 Domain

if (workflowTypeTeam.hasErrors())
{
transactionStatus.setRollbackOnly()
def error = workflowTypeTeam.errors.allErrors.first()
flash['message'] = message(code: error.defaultMessage.toString(), args: error.arguments)
redirect(action:'create')
return
}
posted @   duchaoqun  阅读(142)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示