Here is a Calendar converter class. Modify as necessary for your calendar
object:
import ognl.DefaultTypeConverter;
import org.apache.commons.lang.time.DateUtils;
import org.apache.commons.lang.time.FastDateFormat;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.text.ParseException;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Map;
/**
*/
public class CalendarConverter extends DefaultTypeConverter {
Log log = LogFactory.getLog(CalendarConverter.class);
public Object convertValue(Map map, Object object, Class aClass) {
/***********************************************************Set
Standard Format*/
String[] parsePatterns = {
"MM/dd/yyyy hh:mm a",
"MM/dd/yyyy hh:mm:ss a",
"dd-MMM-yyyy hh:mm a",
"dd-MMM-yyyy hh:mm:ss a",
"MM/dd/yyyy HH:mm",
"MM/dd/yyyy HH:mm:ss",
"dd-MMM-yyyy HH:mm",
"dd-MMM-yyyy HH:mm:ss",
"MM/dd/yyyy",
"dd-MMM-yyyy"
};
FastDateFormat df = FastDateFormat.getInstance(parsePatterns[0]);
if (aClass == Calendar.class) {
/********************************************************Get
First Value in Parameters Array*/
String source = ((String[]) object)[0];
/********************************************************Create
Target Calendar Object******/
Calendar returnCal = new GregorianCalendar();
Date transfer;
try {
/********************************************************Call Commons
DateUtils parse with array of patterns*/
/********************************************************Currently only one
pattern that forces the time to be*/
/********************************************************present. Could
include a MM/dd/yyyy pattern but you*/
/********************************************************should use a
java.util.Date object for that type*/
transfer = DateUtils.parseDate(source, parsePatterns);
returnCal = new GregorianCalendar();
returnCal.setTime(transfer);
return returnCal;
} catch (ParseException e) {
throw new RuntimeException("Cannot convert " + source + " to
calendar type");
}
} else if (aClass == String.class) {
Calendar o = (Calendar) object;
log.debug(o.getTime());
return df.format(o.getTime());
}
return null;
}
}
bilobag wrote:
>
> I have a collection of XMLGregorianCalendar objects that I would like to
> display on a jsp page as a formatted date. So far I have tried creating
> my own converter class to convert XMLGregorianCalendar to java.util.Date,
> but I can't seem to get it called properly. What is the best way to get
> this list to display on a jsp page as formatted dates? I didn't see much
> documentation on how to create a converter to convert from one object type
> to another. Another option is for me to be able to call the
> XMLGregorianCalendar methods on the jsp page like below, but that didn't
> seem to work either. Anybody know the answer?
>
>
> <s:iterator value="scheduleList" status="scheduleStatus">
> <s:date value="scheduleList.toGregorianCalendar().getTime()"
> format="dd/MM/yyyy"/>
> </s:iterator>
>
--
View this message in context:
http://www.nabble.com/Display-XMLGregorianCalendar-as-date-on-jsp-page-using-type-converter-tp21821248p21824010.html
Sent from the Struts - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]