解决easyui 中显示Date类型数据为[object Object],json中格式化日期

来源:互联网 发布:淘宝店铺头像在哪里换 编辑:程序博客网 时间:2024/05/01 13:49

javabean中

public class Ent{

 /**
  *
  */
 private static final long serialVersionUID = 456194500355659344L;
 

 
 private String id;//主键,
 
 private String entName;//商家名称
 
 private Date smsSendTime;//发送时间  在bean中该字段类型为java.util.Date,  数据库中该字段类型为java.sql.Date
 
 private String remark;//备注

.......get和set方法

}

Struts2 action中

  jsonMap是从数据库中查出的javaBean的结果集

 yyyy-MM-dd HH:mm:ss该值可换成任何你想要在页面展示的日期格式

 JsonConfig config = new JsonConfig();         
  config.setIgnoreDefaultExcludes(false);          
  config.registerJsonValueProcessor(java.util.Date.class, new JsonDateValueProcessor("yyyy-MM-dd HH:mm:ss"));        
  jsonResult = JSONObject.fromObject(jsonMap,config);

JsonDateValueProcessor类的代码

/** 
* JSON 日期格式处理(java转化为JSON) 
*/
public class JsonDateValueProcessor implements JsonValueProcessor { 
 
    /** 
     * datePattern 
     */
    private String datePattern = "yyyy-MM-dd"; 
 
    public JsonDateValueProcessor() { 
        super(); 
    } 
 
    /** 
     * 可以根据构造传入格式化的格式
     */
    public JsonDateValueProcessor(String format) { 
        super(); 
        if(format != null && !"".equals(format)){
            this.datePattern = format; 
        }
    } 
    @Override
    public Object processArrayValue(Object value, JsonConfig jsonConfig) { 
        return process(value); 
    }
    @Override
    public Object processObjectValue(String key, Object value, 
            JsonConfig jsonConfig) { 
        return process(value); 
    } 
//用于格式化date类型的值
    private Object process(Object value) { 
        try { 
            if (value instanceof Date) { 
                SimpleDateFormat sdf = new SimpleDateFormat(datePattern, 
                        Locale.CHINESE); 
                return sdf.format((Date) value); 
            } 
            return value == null ? "" : value.toString(); 
        } catch (Exception e) { 
            return ""; 
        } 
 
    } 
 
    /** 
     * @return the datePattern 
     */
    public String getDatePattern() { 
        return datePattern; 
    } 
 
    /** 
     * @param pDatePattern the datePattern to set 
     */
    public void setDatePattern(String pDatePattern) { 
        datePattern = pDatePattern; 
    } 
 
}

按照上述格式可在页面中正确显示日期字段的数据

0 1
原创粉丝点击