Spring mvc ResourceBundleMessageSource для разных тем - PullRequest
0 голосов
/ 21 ноября 2011

Я настраиваю свой appstrings.properties файл, который содержит строки, относящиеся к теме, используемой моим приложением.Есть две темы для моего приложения.Оба имеют свой собственный файл appstrings.properties, расположенный в WEB-INF/strings/theme1/appstrings и WEB-INF/strings/theme2/appstrings.Я указал свойство themeName в файле config.properties.

Вот мой весенний конфигурационный файл:

<context:property-placeholder location="file:///${config.properties}" />

...

<bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource"
p:basenames="WEB-INF/strings/theme1/appstrings" />

Сейчас все строки моего приложения поступают из WEB-INF / strings / theme1 / appstringsФайл .properties.Как я могу сделать это динамичным.то есть когда я изменяю свойство themeName на theme2, оно должно получить строку из WEB-INF / strings / theme2 / appstrings.properties

Ответы [ 2 ]

1 голос
/ 21 ноября 2011

Вам нужно использовать ResourceBundleThemeSource

<!-- resolves localized <theme_name>.properties files in the classpath to 
    allow for theme support -->
<bean
    class="org.springframework.ui.context.support.ResourceBundleThemeSource"
    id="themeSource" /> 
 <mvc:interceptors>
    <bean class="org.springframework.web.servlet.theme.ThemeChangeInterceptor"/> 
 </mvc:interceptors>

См. Ссылка на пружину. Глава 15.7 Использование тем

Для работающего примера вы можете быстро создать небольшое приложение Spring Roo. Для изменения CSS-файлов используется поддержка тем.

0 голосов
/ 24 ноября 2011

Если config.properties содержит свойство, скажем: themeName = propertyValue. Если вы хотите использовать значение этого themeName в файле XML сервлета конфигурации Spring mvc, вы можете использовать $ {themeName}

<bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource"
p:basenames="WEB-INF/strings/${themeName}/appstrings" />

ссылка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...