intra-mart Accel Platform TERASOLUNA Server Framework for Java (5.x) プログラミングガイド 第17版 2022-12-01

コードリスト

CodeListInterceptorのfallbackToに関する注意点

CodeListInterceptorのfallbackToはデフォルトで Locale.getDefault() が設定され、日本語環境では ja_JP です。 intra-mart Accel Platform では日本語の場合にはロケールの値を ja としていますので、 fallbackTo を使うパターンでは ja_JP に対応するコードリストが取得できません。 これを回避するための方法をに以下に2つ紹介します。

  • CodeListInterceptor の fallbackTo を設定する方法

    classes/META-INF/spring/applicationContext-im_tgfw_web.xml のCodeListInterceptorの設定にfallbackToを明示します。

        <!-- MVC interceptors -->
        <mvc:interceptors>
            .. 略 ..
            <!-- code list -->
            <mvc:interceptor>
                <mvc:mapping path="/**" /> <!-- configure the path to specify the package of controllers. -->
                <bean class="org.terasoluna.gfw.web.codelist.CodeListInterceptor">
                    <property name="codeListIdPattern" value="CL_.+" />
                    <property name="fallbackTo" value="ja" />
                </bean>
            </mvc:interceptor>
        </mvc:interceptors>
    
  • SimpleI18nCodeList で ja と ja_JP のパターンを設定する方法

    それぞれのコードリストに対して、ja と ja_JP に同じマップを設定します。

      <util:map id="CL_CODELIST_01_JA">
        <entry key="0" value="なし" />
        <entry key="1" value="あり" />
      </util:map>
    
      <bean id="CL_CODELIST_01" class="org.terasoluna.gfw.common.codelist.i18n.SimpleI18nCodeList">
        <property name="rows">
          <util:map>
            <entry key="en">
              <util:map>
                <entry key="0" value="No" />
                <entry key="1" value="Yes" />
              </util:map>
            </entry>
            <entry key="ja_JP" value-ref="CL_CODELIST_01_JA" />
            <entry key="ja" value-ref="CL_CODELIST_01_JA" />
          </util:map>
        </property>
      </bean>