jfinal 中 Page<M>的问题
{
Page<M> datas = this.paginate(pn, ps, "select id ", String.format( "from %s where %s",getTableName(),condition));
if(datas.getTotalRow()==0) return datas;
List<M> modelList = datas.getList();
//获取所有数据
String ids = "";
for(M m:modelList)
{
ids = ids+m.getInt("id")+",";
}
ids = ids.substring(0, ids.length()-1);
//这个写法有问题,没办法设置到datas里面
//modelList = findWhere(String.format("id in(%s)",ids));
List<M> ms = findWhere(String.format("id in(%s)",ids));
for(int i = 0; i < ms.size(); i++)
{
modelList.set(i, ms.get(i));
}
return datas;
}
public List<M> findWhere(String condition) {
return this.find( String.format( "select * from %s where "+condition,getTableInfo().getTableName()));
}
问题如下:
List<M>肯定是引用类型吧。。
为啥我直接 modelList = findWhere(String.format("id in(%s)",ids)) 的结果没办法被 datas 中的 list引用到。。
也就是说我在外面调用queryPage返回的Page<M>.getList() 还是只有id值在里面。
一定要写成这样才行?
List<M> ms = findWhere(String.format("id in(%s)",ids));
for(int i = 0; i < ms.size(); i++)
{
modelList.set(i, ms.get(i));
}
也就是说我在外面调用queryPage返回的Page<M>.getList() 有id值也有其它的列值。
---------实在是有点不解。。高人指点
------------- 在外面的调用如下:
Integer pn = this.getParaToInt("page");
if(pn==null) pn=1;
Integer ps = this.getParaToInt("rows");
if(ps==null) ps=20;
Page<SysConfig> cfgs = SysConfig.dao.queryPage(pn, ps, "1=1");
List<SysConfig> cfgList = cfgs.getList();
List<Object> objs = new ArrayList<Object>();
for(SysConfig cfg:cfgList)
{
HashMap<String, Object> hm = new HashMap<String, Object>();
hm.put("id", cfg.getId());
hm.put("pkey", cfg.get("pkey"));
hm.put("pvalue", cfg.get("pvalue"));
objs.add(hm);
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
问题太冗长繁琐了,大家都比较忙,没太多时间仔细研读你的问题,自己先理清问题,修改简练点,估计会有人回答。