From 21f3bcbbed939d09cdf7a44c2f4badee0def4bf5 Mon Sep 17 00:00:00 2001 From: "Donald J. Brown" Date: Sun, 20 Apr 2008 03:38:49 +0000 Subject: [PATCH] Adding correct response type for json validation WW-2571 git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@649878 13f79535-47bb-0310-9956-ffa450edef68 --- .../interceptor/validation/JSONValidationInterceptor.java | 2 ++ .../validation/JSONValidationInterceptorTest.java | 3 +++ .../struts2/views/jsp/StrutsMockHttpServletResponse.java | 8 +++++++- 3 files changed, 12 insertions(+), 1 deletion(-) 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 {