Spring MVC の Theme Resolver Example でプログラミングしてテーマの一覧を取得するにはどうすればよいですか?
2 に答える
次の設定は、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
これがお役に立てば幸いです。
最初にグーグルで検索して自分で試してから、例外が発生した場合は質問してください。
このために、以下のコードを 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/にあります。
これがあなたを助けることを願っています。