后天多个列表展示,ajax 获得后台toJson船,日期格式默认为: 年月日 时分秒。
前台展示,有时候需要 年月日,有时候需要 年月日-时分秒。
JFinal里,后台是通过
me.setJsonFactory(JtnMixedJsonFactory.me());
统一设置的。
render:
public void listData() {
PagePair pagePair = PageKit.getPagePair(this);
Page<T> page = getService().listPage(pagePair);
renderJson(Result.ok().set(PAGE, page));
我在自己封装的json里:
private static class JtnMixedJson extends Json {
private static JtnJFinalJson jtnJFinalJson = JtnJFinalJson.getJson();
private static FastJson fastJson = FastJson.getJson();
public String toJson(Object object) {
String defaultDatePattern = "yyyy-MM-dd"; // null;
jtnJFinalJson.setDatePattern(defaultDatePattern);
jtnJFinalJson.setTimestampPattern(defaultDatePattern);
return jtnJFinalJson.toJson(object);
}
public <T> T parse(String jsonString, Class<T> type) {
return fastJson.parse(jsonString, type);
}
}
修改默认为 "yyyy-MM-dd"。
我发现 数据库的DateTime被映射为了 java.sql.TimeStap。
设置格式。
问题是,多个列表,格式不同呢?
在之前的项目里,我是这么做的,数据库用DateTime,fastjson序列化时(可能),默认为 数值,前台 js 手动控制格式化,灵活了,但是 每个地方都需要格式化一次。
jfinal里,想到1种方法,增加1个 注解,配置这个类 或者 某个字段的 date日期格式,统一拦截处理。