Spring MVC を使用して webapp を作成しました。次のように、ディスパッチャーサーベットでインターセプターを介して国際化を設定しました。
<bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<property name="paramName" value="lang" />
</bean>
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
<property name="defaultLocale" value="es" />
</bean>
次に、次のようにコントローラーで現在のロケールにアクセスできます。
LocaleContextHolder.getLocale()
いつでもロケールを変更して、現在の構成にどこからでもアクセスできるため、これは素晴らしいことです。
ここで、アプリのすべての動作にわずかに影響を与えるという意味で、同様の方法で動作するいくつかのカスタム変数で同じことをしたいと思います。(たとえば、「アクセス可能な」パラメーターは、アクセス可能なコンテンツのみを提供する必要があるアプリを示します)。
次のように、「アクセス可能」という名前のパラメーターをインターセプトする独自のインターセプターを作成できることを理解しています。
<bean id="localeChangeInterceptor" class="com.myapp.MyInterceptor">
<property name="paramName" value="accesible" />
</bean>
しかし、LocaleContextHolder オブジェクトがロケールで行うように、アプリ全体でこの値にアクセスできる方法はありますか? Cookie likeso を介して Spring に注入させることはできますか?