Отправка испанских символов при отправке формы

Я создаю портлеты с помощью Spring Portlet MVC 3.02 и развертываю их на WebSphere Portal V7. У меня есть отправка формы, в которой одно поле со списком требует отправки испанского символа. Что-то вроде этого:

<form:select id="${ns}imTheField" path="imTheField" cssStyle="width:120px;">
    <option value="AtTheEndTheresASpanishCharacterÑ">
        AtTheEndTheresASpanishCharacterÑ
    </option>                                                   
</form:select>

Символ "Ñ" хорошо смотрится на экране. Это комбинированное значение сопоставляется с атрибутом команды imTheField процессом Spring Binding. После отправки формы и в методе обработчика это то, что я получаю, когда я регистрирую этот атрибут команды:

theCommand.getImTheField: AtTheEndTheresASpanishCharacterÃ

Который не является характером, который пришел из формы. Это вызывает у меня проблемы, так как при ошибках в отправке формы мне приходится снова показывать форму с предыдущими значениями, которых теперь у меня нет из-за этой проблемы.

Есть идеи? Это то, что я получаю от отладки Chrome при отправке формы:

Request Headers
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:es

Form Data
imTheField:AtTheEndTheresASpanishCharacterÑ

Response Headers
Content-Language:es
Content-Type:text/html; charset=UTF-8

Обратите внимание, что поле imTheField выглядит хорошо отформатированным. Может быть, проблема с заголовком запроса Accept-Charset?


person Carlos Gavidia-Calderon    schedule 02.06.2013    source источник


Ответы (1)


см.: http://floatingcube.blogspot.co.uk/2008/10/special-characters-in-spring-mvc.html

Возможно, вам придется использовать фильтр, так как spring использует ISO-8859-1, а не UTF-8.

person zargarf    schedule 04.06.2013
comment
Это приложение Portlet, я не думаю, что фильтры Servlet применимы - person Carlos Gavidia-Calderon; 04.06.2013
comment
Приложение с портлетом — это всего лишь вариант динамического веб-приложения. Вы все еще можете использовать фильтры. Например, фильтры аутентификации часто используются в Websphere Portal для присоединения к событиям входа и выхода. - person zargarf; 04.06.2013
comment
ваш jsp содержит что-то вроде ‹%@page language=java contentType=text/html; charset=UTF-8 pageEncoding=UTF-8 %›? если это не помогает, попробуйте реализовать фильтр действий так же, как фильтр кодирования выше, исходники доступны на springsource или github - person Georgy Gobozov; 14.06.2013