我配置了我的confugration文件,即。使用以下bean的主题的dispatcher-servlet.xml文件
<bean id="themeSource" class="org.springframework.ui.context.support.ResourceBundleThemeSource">
<property name="basenamePrefix" value="theme-" />
</bean>
<!-- Theme Change Interceptor and Resolver definition -->
<bean id="themeChangeInterceptor" class="org.springframework.web.servlet.theme.ThemeChangeInterceptor">
<property name="paramName" value="theme" />
</bean>
<bean id="themeResolver" class="org.springframework.web.servlet.theme.CookieThemeResolver">
<property name="defaultThemeName" value="default" />
</bean>
我添加了3个属性 如源目录下的theme-black.properties,theme-blue.properties,theme-default.properties。
在每个属性文件中,我添加了键值对,如下所示
style=style/blue.css
style=style/black.css
style=style/default.css
我将样式文件夹放在Web-Content下。 问题是此ResourceBundleThemeSource已成功加载属性文件,但无法加载css文件。
在JSP文件中,我添加了以下代码
<link rel="stylesheet" href="<spring:theme code='style'/>"
type="text/css" />
更改
<span style="float: right;"> <a href="?theme=default">
default</a> | <a href="?theme=blue">blue</a> | <a
href="?theme=black">black</a>
</span>
如果有任何问题请帮助我........请请&gt;在此先感谢
答案 0 :(得分:0)
我没有使用Spring的主题支持经验,但是我发现您的网址存在一些错误。
首先,您的网址是相对的。您应始终拥有绝对URL(以/
开头)。
其次,在使用任何网址时,您应该使用<c:url>
或<spring:url>
,以便使用正确的上下文前缀:
<spring:url var="cssUrl">
<jsp:attribute name="value"><spring:theme code="style"/></jsp:attribute>
</spring:url>
答案 1 :(得分:0)
就像指定静态内容的位置(在application-config.xml
中)以及访问它们的路径一样简单:
<mvc:resources mapping="/resources/**" location="/resources/"/>
接下来,您可以使用以下命令编辑主题属性文件:
style=resources/style/blue.css
将blue.css
文件放入:webapp/resources/themes
现在您可以使用以下方式加载css
文件:
"resources/themes/blue.css"
中 href
或者使用style
code
标记中的spring:theme
。
这适合我。
答案 2 :(得分:-1)
我不知道你是否已将bean themeChangeInterceptor
ref放在bean DefaultAnnotationHandlerMapping
下。如果你已经这样做了,那么请从那里删除它并将其放在<mvc:interceptors>
标签内,如下所示
<mvc:interceptors>
<ref bean="themeChangeInterceptor" />
</mvc:interceptors>