因为在model 需要用到一对多的问题 我用以下方法实现(添加了属性),
public class Servers extends Model<Servers> { public static final Servers dao = new Servers(); public ServicerIdc getIdc() { return idc; } public void setIdc(ServicerIdc idc) { this.idc = idc; } public List<ServicerGroup> getGroup() { return group; } public void setGroup(List<ServicerGroup> group) { this.group = group; } private List<ServicerGroup> group; private ServicerIdc idc ; }
然后用Page方法获取主表的数据:
Page<Servers> list = Servers.dao.paginate(pageIndex, pageSize, "select * ", " from servers");
server中的一个外键 ,一个一对多 我通过以下方法去实现:
for (Servers server : list.getList()) { server.setGroup(ServicerGroup.dao.find("SELECT sql语句", server.get("server_id"))); server.setIdc(ServicerIdc.dao.findById(server.get("idc_id"))); }
得到的list 是如下结构:
在用
JsonKit.toJson(list)
的时候 ,把我自己加入的 group,idc两个节点丢失 不在包含的json里面,请教如何包含这两个节点.,能否提供一个例子实现我要的功能.谢谢了
项目:JFinal
1:去掉 private List group 类似的属性
2:可留下 setGroup(List group)这样的方法,在此类方法内部使用 put(k, v) 与 get(k, v) 的形式将数据存放在 model 的 Map attrs 属性中即可
方案二:
1:使用 jfinal 2.2 的 Generator 生成 baseModel,为 model 添加上了 getter、setter
2:在最终的 Model 例如上例中的 Servers 类中添加你所需要的额外属性与 getter、setter
3:通过 me.setJsonFactory(new FastjsonJsonFactory()) 将 json 实现切换到 fastjson,这样在转换 json 时会根据 setter 与 getter 来转换,就会照顾到你额外添加的 getter 方法