I use this:
package appfuse.webapp.util;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.jsp.PageContext;
import org.displaytag.decorator.DisplaytagColumnDecorator;
import org.displaytag.exception.DecoratorException;
import org.displaytag.properties.MediaTypeEnum;
public class ListUtil {
public static final SimpleDateFormat detailDateFormat = new
SimpleDateFormat("yyyy-MM-dd hh:mm:ss a z");
public static DisplaytagColumnDecorator getListDateDecorator(){
return getListDateDecorator(detailDateFormat);
}
public static DisplaytagColumnDecorator getListDateDecorator(final
DateFormat fmt){
return new DisplaytagColumnDecorator(){
public Object decorate(Object obj, PageContext ctx,
MediaTypeEnum media) throws DecoratorException {
if(obj == null) return null;
return fmt.format((Date)obj);
}
};
}
}
// and then one instance of using it is like:
package appfuse.webapp.action;
import java.text.DateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.StringUtils;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import appfuse.Constants;
import appfuse.service.IncidentManager;
import appfuse.webapp.util.ListUtil;
public class SupportIncidentController implements Controller {
private IncidentManager incidentManager;
public void setIncidentManager(IncidentManager mgr){
this.incidentManager = mgr;
}
public ModelAndView handleRequest(HttpServletRequest req,
HttpServletResponse res) throws Exception {
String months = req.getParameter("monthsOld");
if(StringUtils.isEmpty(months)) months = "6";
Calendar cal = new GregorianCalendar();
cal.add(Calendar.MONTH, -1 * Integer.parseInt(months));
java.util.List incidents =
incidentManager.getIncidentsSince(cal.getTime());
req.setAttribute("listDateDecorator",
ListUtil.getListDateDecorator(DateFormat.getDateTimeInstance(DateFormat.MEDIUM,
DateFormat.MEDIUM,req.getLocale())));
req.setAttribute("refData",
incidentManager.getSupportReferenceData());
return new ModelAndView("caseList", Constants.INCIDENT_LIST,
incidents);
}
}
// then a jsp would have a display:column definition like:
<display:column property="shipmentDate" escapeXml="true"
sortable="true" titleKey="order.shipmentDate"
decorator="listDateDecorator"/>
HTH
Brett Knights
Richard G. Reyes wrote:
MySQL column datatype is DATETIME, then I changed my pojo's datatype
from java.util.Date to java.sql.Timestamp.
Still results to the same error.
Richard
On 3/9/07, Richard G. Reyes <[EMAIL PROTECTED]> wrote:
Hi All,
I have modified my DateDecorator from extending TableDecorator to
implementing DisplaytagColumnDecorator. Displaytag managed to load the
decorator. Now I am encountering this exception...
javax.servlet.jsp.JspException: java.sql.Timestamp
at
org.displaytag.render.TableWriterTemplate.writeTable(TableWriterTemplate.java:161)
at
org.displaytag.render.HtmlTableWriter.writeTable(HtmlTableWriter.java:643)
at
org.displaytag.tags.TableTag.writeHTMLData(TableTag.java:1549)
at org.displaytag.tags.TableTag.doEndTag(TableTag.java:1218)
at
org.apache.jsp.WEB_002dINF.pages.referralList_jsp._jspService(referralList_jsp.java:179)
at
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
Again any help is appreciated.
Thanks
Richard
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]