Author: lukaszlenart
Date: Wed Jan 8 13:02:59 2014
New Revision: 1556522
URL: http://svn.apache.org/r1556522
Log:
WW-4185 makes default json date format configurable
Added:
struts/struts2/trunk/plugins/json/src/test/java/org/apache/struts2/json/SingleDateBean.java
Modified:
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONResult.java
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONUtil.java
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONWriter.java
struts/struts2/trunk/plugins/json/src/test/java/org/apache/struts2/json/JSONResultTest.java
struts/struts2/trunk/plugins/json/src/test/java/org/apache/struts2/json/JSONWriterTest.java
Modified:
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONResult.java
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONResult.java?rev=1556522&r1=1556521&r2=1556522&view=diff
==
---
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONResult.java
(original)
+++
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONResult.java
Wed Jan 8 13:02:59 2014
@@ -84,6 +84,7 @@ public class JSONResult implements Resul
private boolean enumAsBean = JSONWriter.ENUM_AS_BEAN_DEFAULT;
private boolean noCache = false;
private boolean excludeNullProperties = false;
+private String defaultDateFormat = null;
private int statusCode;
private int errorCode;
private String callbackParameter;
@@ -199,7 +200,8 @@ public class JSONResult implements Resul
}
protected String createJSONString(HttpServletRequest request, Object
rootObject) throws JSONException {
-String json = JSONUtil.serialize(rootObject, excludeProperties,
includeProperties, ignoreHierarchy, enumAsBean, excludeNullProperties);
+String json = JSONUtil.serialize(rootObject, excludeProperties,
includeProperties, ignoreHierarchy,
+ enumAsBean, excludeNullProperties,
defaultDateFormat);
json = addCallbackIfApplicable(request, json);
return json;
}
@@ -443,4 +445,13 @@ public class JSONResult implements Resul
public void setEncoding(String encoding) {
this.encoding = encoding;
}
+
+public String getDefaultDateFormat() {
+return defaultDateFormat;
+}
+
+@Inject(required=false,value="struts.json.dateformat")
+public void setDefaultDateFormat(String defaultDateFormat) {
+this.defaultDateFormat = defaultDateFormat;
+}
}
Modified:
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONUtil.java
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONUtil.java?rev=1556522&r1=1556521&r2=1556522&view=diff
==
---
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONUtil.java
(original)
+++
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONUtil.java
Wed Jan 8 13:02:59 2014
@@ -29,21 +29,9 @@ import org.apache.struts2.json.annotatio
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import java.io.BufferedReader;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.PrintWriter;
-import java.io.Reader;
-import java.io.Writer;
+import java.io.*;
import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
import java.util.regex.Pattern;
import java.util.zip.GZIPOutputStream;
@@ -104,15 +92,18 @@ public class JSONUtil {
*root object
* @param enumAsBean
*whether to serialized enums a Bean or name=value pair
+ * @param defaultDateFormat
+ *date format used to serialize dates
* @return JSON string
* @throws JSONException
*/
public static String serialize(Object object, Collection
excludeProperties,
-Collection includeProperties, boolean ignoreHierarchy,
boolean enumAsBean,
-boolean excludeNullProperties) throws JSONException {
+ Collection includeProperties,
boolean ignoreHierarchy, boolean enumAsBean,
+ boolean excludeNullProperties, String
defaultDateFormat) throws JSONException {
JSONWriter writer = new JSONWriter();
writer.setIgnoreHierarchy(ignoreHierarchy);
writer.setEnumAsBean(enumAsBean);
+writer.setDateFormatter(defaultDateFormat);
return