Grails

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
}
原文地址:https://www.cnblogs.com/duchaoqun/p/13408077.html