title: Grails: Most preferred way to get message from i18n message properties
body: <p>I've already found a way to get message from i18n message properties (outside the controller) </p>
  
  <pre><code>def messageSource = Holders.grailsApplication.mainContext.getBean 'messageSource'
  ....
  errorMessages &lt;&lt; [field: "transactionDate", message: messageSource.getMessage("transactionDate.require.message", null ,null)]
  </code></pre>
  
  <p>But then while reviewing my colleauges work, I found out that they use a different way..</p>
  
  <pre><code>def g = new ApplicationTagLib()
  errorMessages.add([field: "exchangeRate", message: g.message(code: "exchangeRate.max.message")])
  </code></pre>
  
  <p>Obviously, this a simpler version but I want to know which way is preferred (best practice) and what is the difference of the one to the other.</p>