Только для записи вы можете попробовать этот подход:
- объявляет bean-компонент reloadableResourceBundle с basename = 'messages'. Расширение .properties предполагается и не требуется
- введите это как ссылку в ваш бин
- создайте файл messages.properties и поместите в него свои вещи
- скопируйте messages.properties в yourProject / web / messages.properties
- расслабься и наслаждайся
Пояснение:
Перезаряжаемый пакет сообщений Spring не использует путь к классам, поскольку он кэшируется серверами приложений. Вы можете обойти это с помощью classpath: your.properies, но с другой стороны вы также можете использовать не перезагружаемую версию, которая на несколько тиков быстрее.
Другими словами, хитрость заключается в том, чтобы использовать каталог webApp, который не кэшируется. Вы можете поместить свои файлы в свой проект / в Интернет или где-нибудь ниже, если вы сообщите загрузчику.
поместите это в webapp-config.xml
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="message"/>
<property name="cacheSeconds" value="1"/>
</bean>
и это ваш боб:
public class YouBeanWithMsgReloadableResourceBundle {
public void yourMethod(){
String msg = ms.getMessage("your.memo.nic", null, "your default message", Locale.CANADA);
}
@Autowired MessageSource ms;}
И поскольку JSF2 - действительно классная штука, вы можете использовать это в контексте лиц:
public void validate(FacesContext context, UIComponent component, Object value)
throws ValidatorException {
MessageSource ms = FacesContextUtils.getWebApplicationContext(context).getBean(MessageSource.class);
String msg = ms.getMessage("your.memo.nic", null, "your default message", Locale.CANADA);
}