JSP. Кодировка. Корректный вывод символов

214
07 апреля 2019, 16:30

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

JSP

<%@ page contentType="text/html; charset=utf-8" language="java" pageEncoding="utf-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
...
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    </head>
    <body>
         Контекст
         <form action="${pageContext.request.contextPath}" method="post">
         <select name="appUserRoleId">
             <c:forEach var="roleItem" items="${userRoles}">
                 <option value="<c:out value="${roleItem.id}"/>">
                     <c:out value="${roleItem.description}"/>
                 </option>
            </c:forEach>
         </select>
         <input type="submit" value="Подтвердить"></p>
         </form>
    </body>
</html>

На jsp пробрасываю массив данных "userRoles", который потом выводятся в выпадающий список. Передаю данный вот так:

request.setAttribute("userRoles", user.getAppUserRoleSet());
request.getRequestDispatcher("/MyJSP.jsp").forward(request, response);

Сами данные я вижу, но вместо букв только знаки вопроса. Что и где я не так указал, для правильной кодировки.

Заранее спасибо

P.S. Не может ли это быть связано с тем, что я использую

request.getRequestDispatcher("/MyJSP.jsp").forward(request, response); 

, а не

servletResponse.sendRedirect("/MyJSP.jsp");

P.S.S. Добавление в web.xml EncodingFilter так же не решает проблему

Answer 1

В JSP в шапку добавь:

<%@ page session="false" %>
<%request.setCharacterEncoding("UTF-8");%>

В итоге вид должен быть такой:

<%@ page language="java" contentType="text/html; charset=utf-8" 
 pageEncoding="utf-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<%request.setCharacterEncoding("UTF-8");%>
READ ALSO
Как проверить работу docker контейнера?

Как проверить работу docker контейнера?

Есть docker контейнер с java приложением

230
Как правильно сделать лайк функцию в firebase?

Как правильно сделать лайк функцию в firebase?

Есть приложение, в нем постыЛайки, сделал следующим образом:

179
Добавление библиотек в Intellij Idea

Добавление библиотек в Intellij Idea

Мне необходимо добавить библиотеки, скачанные с интернета, которые хранятся в форме каталогов, в проектДелаю это следующим образом: File->Project...

189
Для чего нужен метод BigInteger probablyPrime ?

Для чего нужен метод BigInteger probablyPrime ?

Наткнулся на метод probablePrime в классе BigInteger, кто-то может объяснить для чего он нужен, и как он работает ?

161