【发布时间】:2010-03-05 12:48:15
【问题描述】:
我正在使用http://java.sun.com/jsp/jstl/fmt 标签库从 Spring 配置中设置的 Message Resource Bundle 输出消息。消息解析也可以在控制器中进行。
我想记录在资源包文件中找不到密钥的情况。
有人知道怎么做吗?
【问题讨论】:
标签: java spring resourcebundle
我正在使用http://java.sun.com/jsp/jstl/fmt 标签库从 Spring 配置中设置的 Message Resource Bundle 输出消息。消息解析也可以在控制器中进行。
我想记录在资源包文件中找不到密钥的情况。
有人知道怎么做吗?
【问题讨论】:
标签: java spring resourcebundle
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>
与班级:
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 {
// ...
}
}
我不知道某些方法是否会调用其他方法,因此您必须进行一些试验。
【讨论】: