java - 如何记录资源包 key 缺失

标签 java spring resourcebundle

我正在使用http://java.sun.com/jsp/jstl/fmt用于从 Spring 配置中设置的 Message Resource Bundle 输出消息的标签库。消息解析也可以放在 Controller 中。

我想记录在资源包文件中找不到 key 的情况。

有人知道怎么做吗?

最佳答案

Spring 使用 MessageSource 来检索消息,因此一种解决方案可能是编写您自己的 MessageSource 来封装 Spring 并覆盖 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>

与类(class):

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

我不知道某些方法是否正在调用其他方法,因此您必须进行一些实验。

关于java - 如何记录资源包 key 缺失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2386768/

相关文章:

linux - 在 Linux 中捆绑可执行文件和共享库

jsf - 如何动态地将参数传递给资源包中的消息

java - 如何在 MappingJackson2MessageConverter 中设置 typeIdPropertyName

java - 是否可以从 JFrame 获取鼠标输入?

java - 在 404 和 500 Http 错误 Spring MVC 上发送电子邮件或记录错误

java - 切入点表达式可以匹配Java方法中的泛型参数吗?

JavaFX 2 和国际化加载属性文件

java - 如何在命令行中运行 Eclipse+Maven+JUnit 测试

java - 如何配置使用Netty的服务器发送UDP数据包的源端口?

spring - 在 hibernate/spring 中的多个模式之间分区数据