填坑心得和疑问

最近在用jfinal重构一个老项目并添加一些新功能.这个老项目是用spring封装了一些乱七八糟的东西做的,全是坑.现写几个遇到的与jfinal有关问题.

  1. oracle的 NUMBER 字段无论设置多长自动生成 BigDecimal,只能去手动修改baseModel,改成相应的 int 或是long.没有找到好的解决办法.

  2. 设计表的坑主,所有的字段都是大写,大写也就算了,下划钱分隔也没有.在renderJson的时候,model的key全被转成小写,而record的key会被转成大写. 当在config里设置

    arp.setContainerFactory(new CaseInsensitiveContainerFactory(true));

    所有的key会被转成小写.但是遇到一个新问题,比如:我在一个model添加一个llist                myModel.put("studentList",studentList);    

  3. 最后renderJson时 "studentList" 也会被转成全小写: "studentlist".最后只得重写JFinalJson 一个个排除这种情况.
  4. 还是这个坑主数据库字段是date格式,给前端的是时间戳.这个最后也是重写JFinalJson解决的.

求波总等在神指点,以上有没有更好的解决?


评论区

JFinal

2018-08-27 23:21

有办法解决,今天太晚了,只简单说一下:
1: number 字段映射问题可以通过继承 MetaBuilder ,对于 BigDecimal 类型生成 Integer 或者 Long 类型。 MetaBuilder 中所有方法都是可以覆盖并定制的。具体到 oracle 的 number 类型,还可以得到其精度,选择生成 Integer、Long、BigDecimal

2:oralce 的字段一定要用下划线分隔,否则生成器生成 getter、setter 方法时就不好处理,因为生成器是无法知道你的多个单词的分界点的,除非先准备一个分词文件,然后利用分词器进行单词的分割,做到是可以做到,就是麻烦

CaseInsensitiveContainerFactory 这个不建议使用,如果要用也不建议传入 true/false构造方法的参数,让构造方法参数留空

3:date 格式这个,只要配置好 datePatter 就可以了,me.setJsonDatePattern(...)。 建议使用 jfinal 3.4版本,因为老版本的这个配置对于 JFinalJson 实现无效

flyinkeke

2018-08-27 23:40

@JFinal datePatter这个知道,但是怎样配置才能把date转成时间戳?

热门反馈

扫码入社