Author: musachy
Date: Sun May 20 12:53:59 2007
New Revision: 539926

URL: http://svn.apache.org/viewvc?view=rev&rev=539926
Log:
WW-1792 Date tag doesn't handle calendars

Modified:
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Date.java
    
struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/DateTagTest.java

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Date.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Date.java?view=diff&rev=539926&r1=539925&r2=539926
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Date.java 
(original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Date.java 
Sun May 20 12:53:59 2007
@@ -25,6 +25,7 @@
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Calendar;
 import java.util.Iterator;
 import java.util.List;
 
@@ -274,9 +275,14 @@
         String msg = null;
         ValueStack stack = getStack();
         java.util.Date date = null;
-        // find the name on the valueStack, and cast it to a date
+        // find the name on the valueStack
         try {
-            date = (java.util.Date) findValue(name);
+            //suport Calendar also
+            Object dateObject = findValue(name);
+            if (dateObject instanceof java.util.Date)
+                date = (java.util.Date) dateObject;
+            else if(dateObject instanceof Calendar)
+                date = ((Calendar) dateObject).getTime();
         } catch (Exception e) {
             LOG.error("Could not convert object with key '" + name
                     + "' to a java.util.Date instance");

Modified: 
struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/DateTagTest.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/DateTagTest.java?view=diff&rev=539926&r1=539925&r2=539926
==============================================================================
--- 
struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/DateTagTest.java
 (original)
+++ 
struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/DateTagTest.java
 Sun May 20 12:53:59 2007
@@ -51,6 +51,20 @@
         tag.doEndTag();
         assertEquals(formatted, writer.toString());
     }
+    
+    public void testCustomFormatCalendar() throws Exception {
+        String format = "yyyy/MM/dd hh:mm:ss";
+        Calendar calendar = Calendar.getInstance();
+        String formatted = new 
SimpleDateFormat(format).format(calendar.getTime());
+        context.put("myDate", calendar);
+
+        tag.setName("myDate");
+        tag.setNice(false);
+        tag.setFormat(format);
+        tag.doStartTag();
+        tag.doEndTag();
+        assertEquals(formatted, writer.toString());
+    }
 
     public void testDefaultFormat() throws Exception {
         Date now = new Date();


Reply via email to