Подходящая ситуация -> Стоичная кодовая ситуация при переходе от JSP к действию, здесь примечают GBK в качестве примера
1. Создайте фильтр для кодирования конверсии
Пример местоположения файла: src.util.setcharacterencodingfilter.java
Кода -копия выглядит следующим образом:
Утилит пакета;
импортировать java.io.ioexception;
Импорт javax.servlet.filter;
Импорт javax.servlet.filterchain;
Импорт javax.servlet.filterConfig;
Импорт javax.servlet.servletexception;
Импорт javax.servlet.servletrequest;
Импорт javax.servlet.servletresponse;
Импорт javax.servlet.unavailableException;
/**
* Пример фильтра, который устанавливает кодирование символов для использования при анализе
* входящий запрос
*/
открытый класс SetCaracterencodingFilter реализует фильтр {
/**
* Вытащите этот фильтр из эксплуатации.
*/
public void destress () {
}
/**
* Выберите и установите (если указано) кодирование символов, которое будет использоваться для
* Интерпретировать параметры запроса для этого запроса.
*/
public void dofilter (запрос ServletRequest, ответ Servletresponse,
Цепочка FilterChain) бросает ioException, ServletException {
request.setcharacterencoding ("gbk");
// передавать управление следующим фильтром
chain.dofilter (запрос, ответ);
}
public void init (filterConfig filterConfig) бросает ServletException {
}
}
2. Изменить web.xml и добавить 2 фильтра перед отображением FilterDispatcher Struts
Кода -копия выглядит следующим образом:
<? xml version = "1.0" Encoding = "UTF-8"?>
<web-app version = "2,5"
xmlns = "http://java.sun.com/xml/ns/javaee"
xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance"
xsi: schemalocation = "http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd ">
<Слушатель>
<lloader-class> org.springframework.web.context.contextloaderListener </stuster-class>
</слушатель>
<Filter>
<Filter-name> Установите кодирование символов </filter-name>
<filter-class> util.setcharacterencodingfilter </filter-class>
</filter>
<фильтровая картирование>
<Filter-name> Установите кодирование символов </filter-name>
<Url-pattern>/*</url-pattern>
</filter-карты>
<Filter>
<filter-name> struts-cleanup </filter-name>
<filter-class> org.apache.struts2.dispatcher.actionContextCleanup </filter-class>
</filter>
<фильтровая картирование>
<filter-name> struts-cleanup </filter-name>
<Url-pattern>/*</url-pattern>
</filter-карты>
<Filter>
<filter-name> struts2 </filter-name>
<filter-class> org.apache.struts2.dispatcher.filterdispatcher </filter-class>
</filter>
<фильтровая картирование>
<filter-name> struts2 </filter-name>
<Url-pattern>/*</url-pattern>
</filter-карты>
</web-app>
3. Ваш заголовок JSP должен иметь
<%@ page language = "java" pageencoding = "gbk"%>
4. Измените настройки кодирования по умолчанию на struts.xml
Кода -копия выглядит следующим образом:
<Struts>
<constant name = "struts.i18n.encoding" value = "gbk"> </constant>
...
...
...
</struts>
По сути, это может решить проблему большинства входящих персонажей, искаженных
PS: Если база данных извлекает символы, такие как MySQL, подтвердите, что символы в вашей базе данных являются GBK, а строка подключения указывает кодирование символов.
<name = "url" value = "jdbc: mysql: // localhost/database? useUnicode = true & hareverencoding = gbk"> </property>