2012-05-24 6 views
0

Я работаю в приложении struts2.0 с интернационализацией. Помимо китайского языка, он отлично работает на других языках.Проблема китайской интернационализации в jsp

Когда я ставил китайский символ в jsp, я не получаю одинаковых значений в действии. Пожалуйста, помогите мне за то же самое.

Я также использовал UTF-8 pageEncoding

<%@page contentType="text/html" pageEncoding="UTF-8"%> 

У меня есть текстовое поле в СПЯ, в котором я заполняющей некоторый китайский иероглиф.

Но в классе Action на стороне сервера, когда я пытаюсь получить значение текстового поля, я получаю ненужные символы.

Я не могу добавить снимок экрана, так как у меня нет 10 репутаций.

Любая помощь будет оценена по достоинству.

+0

Вы делаете GET/POST для отправки данных? и вы получаете нежелательные символы на стороне клиента/сервере? –

+0

Я использую POST и получаю ненужные символы на стороне сервера (класс действия) –

+0

Было ли мое предлагаемое решение сработало? – HashimR

ответ

0

Попробуйте следующую вещь в вашей jsp странице

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
+0

Nop это не помогло –

1

В классе действий до получения параметров, установите кодировку запроса тела в той же кодировке, что pageEncoding в JSP.

request.setCharacterEncoding("UTF-8"); 

Надеюсь, это поможет!

P.S Вышеупомянутое решение относится только к запросу POST.

EDIT:

Получить HttpServletRequest в вызове метода из класса действий:

HttpServletRequest request = ServletActionContext.getRequest(); 

, а затем установить request свойство, как указано выше.

EDIT2:

Добавить эту строку в JSP:

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> 

и добавить filter в вашем 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> 
+0

любая идея, как реализовать samr в struts 2.0 –

+0

@JyotiRupChatterji: проверьте мой обновленный ответ! – HashimR

+0

нет, он не работал даже после установки request.setCharacterEncoding («UTF-8»); Все еще получаете ненужные символы –

0

Недавно я столкнулся вопрос то из JSP когда это Я копирую вставку китайского символа в текстовое поле имени, и когда я пытаюсь извлечь этот i n Уровень Java DAO я получаю некоторое значение нежелательной почты для имени. С приведенным ниже кодом я исправил проблему, и я могу получить китайское значение так же, как в jsp.

String name = new String(entityObj.getName().getBytes("iso-8859-1"), "UTF-8"); 
Смежные вопросы