最后,我使用了Spring的主题支持来实现我想要的。在我的视图代码中,我使用
<spring:theme pre=""/>标签来获取图像文件的路径:
<img src="<spring:theme pre="theme.images.actions.edit.link"/>" />
此标签的行为类似于任何一个
<fmt:message>或
<spring:message>标签,但具有自己的“消息包”。我的applicationContext中的必要配置是:
<!-- ========================================================= Themes ========================================================= --><bean id="themeResolver" > <property name="defaultThemeName" value="themes.default"/></bean><bean id="themeSource" />
我的应用程序的所有主题都存储在下
/WEB-INF/classes/themes/。默认主题属性在中。
/WEB-INF/classes/themes/default.properties它看起来像这样:
... theme.images.actions.show.link=/@contextPath@/shared/images/famfam/zoom.png theme.images.actions.delete.link=/@contextPath@/shared/images/famfam/cross.png ...
要更改我的应用程序的主题(和图标),请使用ThemeChangeInterceptor(在applicationContext中)
<!--========================================================= Theme resolving=========================================================--> <bean id="themeChangeInterceptor" > <property name="paramName" value ="theme" /></bean>
这使用户可以通过
"&theme=themes.default"或
"&theme=themes.alternative"请求参数切换主题。
设置的一个关键部分是
@contextPath@主题属性文件中的。在Ant构建过程中,将其替换为开发/测试/生产环境的正确上下文路径。我的build.xml的关键部分是:
<!-- copy all common themes to classes --> <copy todir="${build.war}/WEB-INF/classes/themes" overwrite="true" filtering="true"> <fileset dir="resources/themes" includes="**/*.properties" /> <filterchain><replacetokens> <token key="contextPath" value="${setup.contextPath}"/> </replacetokens> </filterchain> </copy>
我希望这可以为您在Spring Web应用程序主题上提供一个“开始”。在我看来,此设置可以非常轻松地更改应用程序的外观。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)