0

私は本当に痛い何かで立ち往生しています。Spring WebMVC のテーマを使用しようとしています。

これは私の web-context.xml ファイルの終わりです:

<beans:bean id="themeChangeInterceptor" class="org.springframework.web.servlet.theme.ThemeChangeInterceptor" >
    <beans:property name="paramName" value="theme" />
</beans:bean>
<beans:bean id="themeSource" class="org.springframework.ui.context.support.ResourceBundleThemeSource">
    <beans:property name="basenamePrefix" value="theme-" />
</beans:bean>
<beans:bean id="themeResolver" class="org.springframework.web.servlet.theme.CookieThemeResolver" >
    <beans:property name="defaultThemeName" value="default" />
</beans:bean>
<beans:bean id="handlerMapping" class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
    <beans:property name="interceptors">
        <beans:list>
            <beans:ref bean="themeChangeInterceptor" />
        </beans:list>
    </beans:property>
</beans:bean>

私のヘッダーファイルには、次のようなものがあります。

<span style="float: right">
        <a href="?theme=default">Default</a>
        |
        <a href="?theme=other">Other</a>
</span>

最後に、私の html ヘッドには (すべてのビューにインポートされています) :

<link rel="stylesheet" href="<spring:theme code="css"/>" type="text/css" />

src/main/resources に 2 つのプロパティ ファイルがあり、これが CSS につながります。たとえば、theme-default.properties には次のようなものがあります。

css=static/css/dev.css

私の CSS は src/webapp/static/css/ にあります。初めてWebサイトを読み込んだときはテーマがデフォルトなので、プロパティファイルとcssはテーマリゾルバーによって正しく検出されていると思います。しかし、ヘッダーの [デフォルト] または [その他] をクリックしても何も起こりません。

問題がどこにあるか知っていますか?

よろしくお願いします!オリビエ。

4

2 に答える 2

2

インターセプターを間違って登録していると思います。を使用して Spring-MVC を構成している場合<mvc:annotation-driven/>、別のものを使用handlerMappingしてもデフォルトの handlerMapping として機能しません。カスタムmvc名前空間によっても登録されます。代わりに、この方法で登録してみてください。

<mvc:interceptors>
    <ref bean="themeChangeInterceptor"/>
</mvc:interceptors>
于 2012-09-12T19:38:32.237 に答える
0

<mvc:interceptors>宣言をする必要があります。そして、あなたの ThemeChangeInterceptor Bean がそこにあるはずです

<mvc:interceptors>
        <beans:bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
            <beans:property name="paramName" value="lang" />
        </beans:bean>
        <beans:bean class="org.springframework.web.servlet.theme.ThemeChangeInterceptor">
            <beans:property name="paramName" value="theme" />
        </beans:bean>
</mvc:interceptors>
于 2012-10-03T02:10:11.413 に答える