我在插件中添加了一个新的异常(exception):

class UnzipException extends RuntimeException {
    String message
    String defaultMessage
    String fileName
}

. . .

        else {
            throw new UnzipException(
                message:"grailsant.unzipexception.badfile",
                defaultMessage: "Invalid zip file: ${zipFile}",
                fileName: zipFile)
        }
...

在插件的messages.properties中,我有:
grailsant.unzipexception.badfile=Invalid zip file: {0}

两个问题:
  • 如何使用文件名填充{0}?
  • 应用程序可以覆盖grailsant.unzipexception.badfile消息吗?
  • 最佳答案

    (1)看来这必须由应用程式完成:

    try {
      . . .
    } catch (org.grails.plugins.grailsant.UnzipException e) {
         flash.message = e.message
         flash.args    = [e.fileName]
         flash.defaultMessage = e.defaultMessage
    }
    

    (2)是的,如果应用程序中的message.properties与插件具有相同的密钥,则将使用该应用程序的值。

    09-04 19:55