2013-06-21 169 views
0

我配置了我的confugration文件ie。使用以下豆css文件在Spring主题模块中不起作用。属性文件加载正常,但CSS不起作用

<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> 

主题调度-servlet.xml文件我已经加入3个属性的源目录下 如theme-black.properties,theme-blue.properties,theme-default.properties。

每个属性

文件,我添加键值对如下

style=style/blue.css 
style=style/black.css 
style=style/default.css 

我把风格文件夹下的Web内容。 问题是这个ResourceBundleThemeSource成功加载属性文件,但无法加载css文件。

在JSP文件我已经添加follwing代码

<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> 

请帮我如果有问题是有........请请请>谢谢提前

回答

0

我没有Spring的主题支持经验,但是我发现你的URL存在一个小错误。

首先你的网址是相对的。您应始终拥有绝对网址(从/开始)。

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

<spring:url var="cssUrl"> 
    <jsp:attribute name="value"><spring:theme code="style"/></jsp:attribute> 
</spring:url> 
+0

嗨帕维尔,感谢您的快速回复,但我没有得到你。我相信我的代码中没有使用任何网址。如果你知道可以请指导我。谢谢.... – pawan

+0

'href =“”' - 这里你使用的是你的CSS文件的URL。你至少应该在你的属性中添加前导斜杠'/'。通过URL标记处理它是可选的,取决于你的用例。如果CSS文件始终是最终WAR的一部分,则应该对其进行处理。如果它是外部参考或对另一个上下文的引用,则情况稍微复杂一些。 –

-1

我不知道你是否已经把豆themeChangeInterceptor裁判下豆DefaultAnnotationHandlerMapping。如果你这样做,那么请从那里删除,并把该<mvc:interceptors>标签内像下面

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

这是指定(在你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. 还是在spring:theme标签的使用codestyle

这对我有用。