如何通过在Spring MVC的主题解析器示例中编程来获取主题列表?
答案 0 :(得分:0)
您需要在xml文件中进行以下配置。
<!-- Configuration for Theme Selection -->
<!-- Note: property files for theme-XXX should be exist into build path.should be in:/WEB-INF/classes/ -->
<bean id="themeSource"
class="org.springframework.ui.context.support.ResourceBundleThemeSource">
<property name="basenamePrefix" value="theme-"/>
</bean>
<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.SessionThemeResolver">
<property name="defaultThemeName" value="green" />
</bean>
<bean id="handlerMapping"
class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
<property name="interceptors">
<list>
<ref bean="themeChangeInterceptor" />
</list>
</property>
</bean>
然后在您的属性文件中,您需要为各自的主题指定CSS文件的路径。
css.style=/Web/resources/css/style.css
希望这会对你有所帮助。
答案 1 :(得分:0)
你应该首先谷歌并自己尝试,然后问任何问题,如果你有任何例外。
为此,我们将以下代码添加到spring-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>
<bean id="handlerMapping" class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
<property name="interceptors">
<list>
<ref bean="localeChangeInterceptor" />
<ref bean="themeChangeInterceptor" />
</list>
</property>
</bean>
在上面的配置中,首先我们添加了themeSource bean。请注意,此bean是类ResourceBundleThemeSource的实例,我们还指定了一个属性basenamePrefix,其值为“theme-”。 ResourceBundleThemeSource类将加载包含以前缀“theme-”开头的主题定义的属性文件。因此,如果我们在项目中定义了3个新主题(默认,黑色和蓝色),那么我们将创建3个属性文件,同时具有某些配置属性。这些文件也将放在项目类路径下。
接下来,我们定义了一个拦截器bean themeChangeInterceptor,它是类org.springframework.web.servlet.theme.ThemeChangeInterceptor的一个实例。另请注意,我们已经指定了一个带有值主题的属性paramName。只要使用具有不同值的参数“theme”进行请求,就会调用此拦截器。
一旦themeChangeInterceptor截获主题中的更改,则使用org.springframework.web.servlet.theme.CookieThemeResolver类将更改存储在cookie中。我们在spring-servlet.xml配置文件中配置了这个类。另请注意,我们已使用此bean指定了默认主题名称。
我们几乎完成了这些更改,剩下的最后一点是为用户添加一项功能,以便从UI中选择主题。为此,我们将更改header.jsp文件并添加3个具有不同主题的链接。用户可以单击此链接中的任何一个并更改webapplication的主题。
此完整信息可在此链接http://viralpatel.net/blogs/spring-3-mvc-themes-tutorial-example/
中找到希望这会对你有所帮助。