2011-07-01 33 views
0

我添加了一個新的例外,我的插件:如何使用國際化的消息在一個Grails插件

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} 

兩個問題:

  1. 如何使用fileName填充{0}?

  2. 應用程序可以覆蓋grailsant.unzipexception.badfile消息嗎?

回答

1

(1)看起來這必須由應用程序來完成:

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

(2)是的,如果在應用中message.properties具有相同的密鑰作爲該插件後,應用的價值將被使用。