Ответ 1
Это известная проблема, так как PrimeFaces 3.0. Это вызвано изменением того, как он проверяет, является ли текущий HTTP-запрос ajax-запросом. Он был идентифицирован параметром запроса вместо заголовка запроса. Когда параметр запроса извлекается в первый раз перед восстановлением представления JSF, все параметры запроса будут обрабатываться с использованием кодировки символов по умолчанию сервера, которая часто является ISO-8859-1, а не собственной кодировкой JSF по умолчанию UTF-8. Подробное объяснение см. В Unicode-вход, полученный через входные компоненты PrimeFaces, поврежден.
Одним из решений является создание фильтра, который выполняет request.setCharacterEncoding("UTF-8")
.
@WebFilter("*.xhtml")
public class CharacterEncodingFilter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
chain.doFilter(request, response);
}
// ...
}