diff --git a/core/src/main/java/org/apache/struts2/interceptor/validation/JSONValidationInterceptor.java b/core/src/main/java/org/apache/struts2/interceptor/validation/JSONValidationInterceptor.java index 60dea3612..37dbd9a21 100644 --- a/core/src/main/java/org/apache/struts2/interceptor/validation/JSONValidationInterceptor.java +++ b/core/src/main/java/org/apache/struts2/interceptor/validation/JSONValidationInterceptor.java @@ -98,6 +98,7 @@ public class JSONValidationInterceptor extends MethodFilterInterceptor { if (validationFailedStatus >= 0) response.setStatus(validationFailedStatus); response.getWriter().print(buildResponse(validationAware)); + response.setContentType("application/json"); return Action.NONE; } } @@ -106,6 +107,7 @@ public class JSONValidationInterceptor extends MethodFilterInterceptor { if (validateOnly != null && "true".equals(validateOnly)) { //there were no errors response.getWriter().print("/* {} */"); + response.setContentType("application/json"); return Action.NONE; } else { return invocation.invoke(); diff --git a/core/src/test/java/org/apache/struts2/interceptor/validation/JSONValidationInterceptorTest.java b/core/src/test/java/org/apache/struts2/interceptor/validation/JSONValidationInterceptorTest.java index 7ad19f06d..e42cb4880 100644 --- a/core/src/test/java/org/apache/struts2/interceptor/validation/JSONValidationInterceptorTest.java +++ b/core/src/test/java/org/apache/struts2/interceptor/validation/JSONValidationInterceptorTest.java @@ -78,6 +78,8 @@ public class JSONValidationInterceptorTest extends StrutsTestCase { assertFalse(action.isExecuted()); //http status assertEquals(HttpServletResponse.SC_BAD_REQUEST, response.getStatus()); + assertEquals("application/json", response.getContentType()); + } public void testValidationSucceeds() throws Exception { @@ -119,6 +121,7 @@ public class JSONValidationInterceptorTest extends StrutsTestCase { String normalizedActual = TestUtils.normalize(json, true); assertEquals("/*{}*/", normalizedActual); assertFalse(action.isExecuted()); + assertEquals("application/json", response.getContentType()); } protected void setUp() throws Exception { diff --git a/core/src/test/java/org/apache/struts2/views/jsp/StrutsMockHttpServletResponse.java b/core/src/test/java/org/apache/struts2/views/jsp/StrutsMockHttpServletResponse.java index 8cde39dd4..b38f4c06f 100644 --- a/core/src/test/java/org/apache/struts2/views/jsp/StrutsMockHttpServletResponse.java +++ b/core/src/test/java/org/apache/struts2/views/jsp/StrutsMockHttpServletResponse.java @@ -37,6 +37,7 @@ public class StrutsMockHttpServletResponse extends MockHttpServletResponse { private PrintWriter writer; private int status; private String redirectURL; + private String contentType; public Locale getLocale() { return locale; @@ -47,7 +48,12 @@ public class StrutsMockHttpServletResponse extends MockHttpServletResponse { } public String getContentType() { - return null; //To change body of implemented methods use File | Settings | File Templates. + return contentType; //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public void setContentType(String type) { + this.contentType = type; } public PrintWriter getWriter() throws IOException {