WW-5100 Applies encoding to response as well
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java b/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
index 8d7b5fb..7b9a8e1 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
@@ -835,6 +835,7 @@
if (encoding != null) {
applyEncoding(request, encoding);
+ applyEncoding(response, encoding);
}
if (locale != null) {
@@ -854,7 +855,17 @@
request.setCharacterEncoding(encoding);
}
} catch (Exception e) {
- LOG.error("Error setting character encoding to '{}' - ignoring.", encoding, e);
+ LOG.error(new ParameterizedMessage("Error setting character encoding to '{}' on request - ignoring.", encoding), e);
+ }
+ }
+
+ private void applyEncoding(HttpServletResponse response, String encoding) {
+ try {
+ if (!encoding.equals(response.getCharacterEncoding())) {
+ response.setCharacterEncoding(encoding);
+ }
+ } catch (Exception e) {
+ LOG.error(new ParameterizedMessage("Error setting character encoding to '{}' on response - ignoring.", encoding), e);
}
}