Кириллический текст не отображается на страницах ошибок - PullRequest
0 голосов
/ 25 марта 2012

У меня есть веб-сайт, который должен отображаться на двух языках: англ и ру. Это Tomcat6, Java6, Spring3, Tiles2. Веб-сайт показывает текст на обоих языках. Однако, если есть ошибка (и у меня есть настраиваемые страницы ошибок), страница ошибки на русском языке отображается как ????????? (куча?)

Текст в файлах свойств. Обычный текст мысли находится в одном файле, сообщения об ошибках - в другом. Я проверил - оба файла сохраняются в одной кодировке.

в моем web.xml у меня есть это:

<filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

и страницы ошибок определены в web.xml как:

<error-page>
    <error-code>400</error-code>
    <location>/Exception</location>
</error-page>

<error-page>
    <error-code>403</error-code>
    <location>/Exception</location>
</error-page>

<error-page>
    <error-code>404</error-code>
    <location>/404</location>
</error-page>

<error-page>
    <error-code>500</error-code>
    <location>/Exception</location>
</error-page>

<error-page>
    <error-code>503</error-code>
    <location>/Exception</location>
</error-page>

<error-page>
    <exception-type>java.lang.Exception</exception-type>
    <location>/Exception</location>
</error-page>

в myApp-servlet.xml У меня есть это

<bean id="messageSource"
        class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <!-- <property name="basename" value="classpath:text" /> -->

        <property name="basenames">
            <list>
                <value>classpath:text</value>
                <value>classpath:errors</value>
            </list>
        </property>
        <property name="defaultEncoding" value="UTF-8" />
        <property name="fileEncodings" value="UTF-8" />
    </bean>

И снова, весь сайт правильно показывает русский текст. Это страницы ошибок, которых нет.

Есть ли отдельный параметр, который мне нужно указать для страниц с ошибками? Или я что-то упустил?

1 Ответ

1 голос
/ 25 марта 2012

В отображении фильтра есть параметр диспетчер. Вы должны добавить следующее к вашему отображению фильтра:

<dispatcher>REQUEST</dispatcher>
<dispatcher>ERROR</dispatcher>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...