0

我配置了我的配置文件,即。使用以下 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

我将 style 文件夹放在 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> &nbsp;| <a href="?theme=blue">blue</a> &nbsp;| <a
    href="?theme=black">black</a>
</span>

如果有任何问题,请帮助我........请请>提前致谢

4

3 回答 3

0

它就像指定静态内容的位置(在 you 中application-config.xml)以及访问它们的路径一样简单:

<mvc:resources mapping="/resources/**" location="/resources/"/>

接下来您编辑主题属性文件: style=resources/style/blue.css

并将blue.css文件放入:webapp/resources/themes

现在您可以css使用以下方法加载文件:

  1. "resources/themes/blue.css"href

  2. 或使用stylein codeofspring:theme标签。

这对我有用。

于 2014-11-24T09:32:22.927 回答
0

我没有使用 Spring 主题支持的经验,但是我在您的 URL 中发现了一个小错误。

首先,您的 URL 是相对的。您应该始终拥有绝对 URL(以 开头/)。

其次,在使用任何 URL 时,您应该使用<c:url>or<spring:url>以便使用正确的上下文前缀:

<spring:url var="cssUrl">
    <jsp:attribute name="value"><spring:theme code="style"/></jsp:attribute>
</spring:url>
于 2013-06-23T10:55:45.680 回答
-1

我不知道您是否已将 bean themeChangeInterceptorref放在 bean 下DefaultAnnotationHandlerMapping。如果你已经这样做了,那么请从那里删除它并将它放在<mvc:interceptors>标签中,如下所示

<mvc:interceptors>
<ref bean="themeChangeInterceptor" />
</mvc:interceptors>
于 2013-07-25T16:44:25.543 回答