0

Spring構成でセットアップされたメッセージリソースバンドルからメッセージを出力するためにhttp://java.sun.com/jsp/jstl/fmtタグライブラリを使用しています。また、メッセージ解決はコントローラーで行うことができます。

リソースバンドルファイルにキーが見つからない状況をログに記録したいと思います。

誰かがそれを行う方法を知っていますか?

4

1 に答える 1

1

Springはを使用しMessageSourceてメッセージを取得するため、1つの解決策は、SpringメッセージMessageSourceをカプセル化する独自のメッセージを作成し、getMessageメソッドを上書きしてログを挿入することです。

次のようなもの(テストされていません):

 <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>

クラスで:

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 {
    // ...
  }
}

一部のメソッドが他のメソッドを呼び出しているかどうかはわかりませんので、少し実験する必要があります。

于 2010-03-05T12:55:00.803 に答える