Java 持久化sj:datepicker作为时间戳
我有一个输入字段:Java 持久化sj:datepicker作为时间戳,java,sql,persistence,struts2-jquery,Java,Sql,Persistence,Struts2 Jquery,我有一个输入字段: <sj:datepicker readonly="true" name="exam.endDate" required="true" timepicker="true" timepickerAmPm="true" /> 其中exam.endDate是一个具有适当getter和setter的java.sql.Timestamp对象。检查是存储在表中的实体,endDate列的类型为TIMESTAMP。当我持久化一个检查实体并在以后检索它时,我的所有值都是日期,时
<sj:datepicker readonly="true" name="exam.endDate" required="true" timepicker="true" timepickerAmPm="true" />
其中exam.endDate是一个具有适当getter和setter的java.sql.Timestamp对象。检查是存储在表中的实体,endDate列的类型为TIMESTAMP。当我持久化一个检查实体并在以后检索它时,我的所有值都是日期,时间显示为00:00。如何存储时间组件
以下是我显示日期的方式:
<s:date name="exam.endDate" format="dd/MM HH:mm" />
我得到的是“24/06 00:00”
我知道参数拦截器工作不正常,因为当我输入操作并打印出00:00时,无论我输入什么,都会打印出
DateFormat.getDateTimeInstance().format(exam.endDate)
。结果表明struts2参数拦截器不处理时间戳,所以我需要编写自己的
public class MyTimeStampConverter extends StrutsTypeConverter {
private static final SimpleDateFormat sdf = new SimpleDateFormat("<!--Desired Format here-->");
@Override
public Object convertFromString(Map context, String[] values, Class toClass) throws TypeConversionException {
try{
if (values == null || values.length == 0) {
return null;
}
return new java.sql.Timestamp(sdf.parse(values[0]).getTime());
}catch(Exception e){
throw new TypeConversionException(e);
}
}
@Override
public String convertToString(Map context, Object object) throws TypeConversionException {
try{
if(object instanceof Timestamp){
return sdf.format(new Date(((Timestamp)object).getTime()));
}
return "";
}catch(Exception e){
throw new TypeConversionException(e);
}
}
}
公共类MyTimeStampConverter扩展了StrutsTypeConverter{
私有静态最终SimpleDataFormat sdf=新SimpleDataFormat(“”);
@凌驾
公共对象convertFromString(映射上下文,字符串[]值,类到类)抛出TypeConversionException{
试一试{
if(value==null | | values.length==0){
返回null;
}
返回新的java.sql.Timestamp(sdf.parse(值[0]).getTime();
}捕获(例外e){
抛出新的TypeConversionException(e);
}
}
@凌驾
公共字符串convertToString(映射上下文、对象对象)抛出TypeConversionException{
试一试{
if(对象实例of Timestamp){
返回sdf.format(新日期(((时间戳)对象).getTime());
}
返回“”;
}捕获(例外e){
抛出新的TypeConversionException(e);
}
}
}