Java SpringMVC的主题解析器示例

Java SpringMVC的主题解析器示例,java,spring-mvc,themes,Java,Spring Mvc,Themes,如何通过在SpringMVC的主题解析器示例中编程来获取主题列表?以下是您需要在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="themeSourc

如何通过在SpringMVC的主题解析器示例中编程来获取主题列表?

以下是您需要在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>

希望这对你有所帮助。

你应该先用谷歌搜索一下,自己试试,如果有什么异常,再问任何问题

为此,我们将在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> 

在上面的配置中,首先我们添加了mesourcebean。注意,这个bean是ResourceBundleThemeSource类的一个实例,我们还指定了一个值为“theme-”的属性basenamePrefix。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的主题

整个信息可在此链接中找到

希望这对你有帮助

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