Pergunta

estou usando http://java.sun.com/jsp/jstl/fmt Biblioteca de tags para saída de mensagens do pacote de recursos de mensagens, que é configurado na configuração da primavera. Também a resolução de mensagens pode ser entre os controladores.

Gostaria de registrar situações em que as chaves não forem encontradas no arquivo de pacote de recursos.

Algum corpo sabe como fazer isso?

Foi útil?

Solução

A primavera usa a MessageSource Para recuperar as mensagens, uma solução pode ser escrever o seu próprio MessageSource que encapsulam a mola e substituem o getMessage Métodos para inserir seu log.

Algo como o seguinte (não testado):

 <bean id="messageSource" class="com.acme.LoggingMessageSource">
   <property name="pathtru">
     <bean class="org.springframework.context.support.ResourceBundleMessageSource">
       <property name="basenames">
         <list>
           <value>buttons</value>
           <value>labels</value>
         </list>    
       </property>
     </bean>
   </property>
 </bean>

com a classe:

public class LoggingMessageSource implements MessageSource {

  private MessageSource pathtru;

  public String getMessage(String code, Object[] args, String defaultMessage, Locale locale) {
    // ...
  }

  public String getMessage(String code, Object[] args, Locale locale) throws NoSuchMessageException {
    // ...
  }

  public String getMessage(MessageSourceResolvable resolvable, Locale locale) throws NoSuchMessageException {
    // ...
  }
}

Não sei se alguns métodos estão ligando para os outros, então você terá que experimentar um pouco.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top