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();