css文件在Spring Theme模块中不起作用。属性文件正确加载但css不起作用

时间:2013-06-21 14:00:44

标签: java spring spring-mvc

我配置了我的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> &nbsp;| <a href="?theme=blue">blue</a> &nbsp;| <a
    href="?theme=black">black</a>
</span>

如果有任何问题请帮助我........请请&gt;在此先感谢

3 个答案:

答案 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"

  1. href

  2. 或者使用style code标记中的spring:theme

  3. 这适合我。

答案 2 :(得分:-1)

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

<mvc:interceptors>
<ref bean="themeChangeInterceptor" />
</mvc:interceptors>