if(goodsModel!=null){ return goodsModel;}
else
{
goodsModel = new ListDataModel();
SqlMapClient sqlMap = MySqlMapClient.getSqlMapClient();
goodsModel.setWrappedData(sqlMap.queryForList(getSql(),getGoodsSearch()));
System.out.println( "run count : " + count);
return goodsModel;
}catch(SQLException ex){
return null;
}
}
else
{
goodsModel = new ListDataModel();
SqlMapClient sqlMap = MySqlMapClient.getSqlMapClient();
goodsModel.setWrappedData(sqlMap.queryForList(getSql(),getGoodsSearch()));
System.out.println( "run count : " + count);
return goodsModel;
}catch(SQLException ex){
return null;
}
}
解决方案 »
- 简单的文件名互换代码怎么写。
- 关于spring aop 打log问题
- bbs论坛
- 新人想接触struts2,各位大虾推荐推荐...
- 新人学习struts1, 建个helloworld工程有点问题,请老手帮忙
- EasyJF、SpringSide、Appfuse哪个好?
- 在JSP中怎样做报表
- 使用java建立web service ,是否可以返回一个自定义类。
- myeclipse可以导入自己安装的jdk 那javaee的包怎么导入呢
- java.sql.SQLException: No suitable driver
- MDB 事务处理, 大家帮一把!
- No getter method…… 绝对是非常规错误,Struts高手们进
else
{
goodsModel = new ListDataModel();
SqlMapClient sqlMap = MySqlMapClient.getSqlMapClient();
goodsModel.setWrappedData(sqlMap.queryForList(getSql(),getGoodsSearch()));
System.out.println( "run count : " + count);
return goodsModel;
}catch(SQLException ex){
return null;
}
}
这样不行的,我做得有查询,页面有一个查询按钮,getGoodsSearch()是查询条件,
每次查询都是,
count为1时 :恢复视图:此时的查询条件莫名其妙的为:null 比如此时getGoodsSearch().name 输出 null
count为2时 :然后:getGoodsSearch()里面才是正常的数据 比如此时getGoodsSearch().name 输出 张三
更加郁闷的是页面查询的数据是对的,比如我现在查看的是第三页此时我调用goodsModel.getRowData()
得到的结果确是第一页的数据行
private String name; public String getName() {
System.out.println("getName" + name);
return name;
} public void setName(String name) {
this.name = name;
}
public String comm(){
// System.out.println(getName());
return "go";
}}
这最简单的代码,如在页面name中录入:小李 在点击了button按钮执行comm()后
也会执行两次
打印
getNamenull
getname小李
这个到不影响结果,只是郁闷为什么恢复视图时不是 小李?多点击两次也是这样!
如果用session 虽然执行两次 但goodsModel.getRowData()
取出来的数据还是对的
可能第一次就是所谓的恢复视图吧!不过这种每次都需要执行我两次sql
而且我必须用 session
不然提取数据的时候还会出错!
还没有理解:
用request恢复视图时是null,然后是新查询的数据
用session恢复视图时是上次的数据,然后是新查询的数据
那么我getRowData()在request状态下得到的是 恢复视图时的数据(为什么不是新查询的数据?)
在session下得到的确是新查询的数据得到的结果怎么会不一致?
public DataModel getGoodsModel(){
try{
if(goodsModel==null){
goodsModel = new ListDataModel();
}
SqlMapClient sqlMap = MySqlMapClient.getSqlMapClient();
goodsModel.setWrappedData(sqlMap.queryForList(getSql(),getGoodsSearch()));
System.out.println(GoodsBase.class + " getGoodsModel");
System.out.println(getGoodsSearch().getName()+ " " + getGoodsSearch().getStart());
// System.out.println(getGoodsSearch().getStart());
// for(int i=0;i<goodsModel.getRowCount();i++){
// goodsModel.setRowIndex(i);
// System.out.println(goodsModel.getRowData());
// }
return goodsModel;
}catch(SQLException ex){
return null;
}
}
注释的地方会打印两次数据,不喜欢这种莫名奇妙的恢复!