-1

Spring MVC の Theme Resolver Example でプログラミングしてテーマの一覧を取得するにはどうすればよいですか?

4

2 に答える 2

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

これがお役に立てば幸いです。

于 2012-10-16T10:25:30.560 に答える
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 のインスタンスであり、値「theme-」でプロパティ basenamePrefix も指定していることに注意してください。ResourceBundleThemeSource クラスは、接頭辞「theme-」で始まるテーマ定義を含むプロパティ ファイルをロードします。したがって、プロジェクトで 3 つの新しいテーマ (デフォルト、黒、青) を定義した場合、3 つのプロパティ ファイルを作成し、特定の構成プロパティを持ちます。また、これらのファイルはプロジェクト クラスパスの下に配置されます。

次に、クラス org.springframework.web.servlet.theme.ThemeChangeInterceptor のインスタンスであるインターセプター Bean themeChangeInterceptor を定義しました。また、値 theme でプロパティ paramName を指定したことにも注意してください。このインターセプターは、異なる値を持つパラメーター「テーマ」でリクエストが行われるたびに呼び出されます。

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/にあります。

これがあなたを助けることを願っています。

于 2014-04-07T05:43:15.360 に答える