以前都在用SSH,近期有项目用了SSH2,搭建好了,程序能跑了,不过发现了一个问题,真有点搞不懂了,请教一下。
也许看标题不是很清楚是什么问题,还是举例说明吧:
在MODEL,ACTION,BO中,定义了类
class XModel {
private long id;
private String name;
//以下的get 、set的函数就不写了
//......
}
class XAction extends ActionSupport{
XBo xbo;
XModel xmodel;
public String list(){
List<XModel> l =xbo.getList(xmodel);
//打印成为JSON......
return null;
}
//以下的get 、set的函数就不写了
//......
}
class Bo{
//.....
public List<XModel> list(xmodel){
String hql="...... ";
/// 查询时,以model.id,xmodel.name作为条件
List<XModel> l;
if(!nullToSpace(xmodel.name).equal("")){
hql +=" where name=? ";
l=this.xdao.find(hql,new Object[]{xmodel.name});
}else
l=this.xdao.find(hql);
return l;
}
//......
}
那么我用电脑A上,在前端发起查询请求时,提交了查询条件:xmodel.name=xx1,
然后我在电脑B上,访问此查询功能页面的时候,没有提交任何查询条件;但是发现服务器依然保留这xmodel.name=xx1的值,返回的结果与在电脑A上的结果一样,这是什么问题呢?
------解决方案--------------------
第一,第二次请求,在execute方法中,接收的xmodel对象打印一下(在查询之前)
第二,给setXmodel方法加个断点,看看第二次注入了没。
------解决方案--------------------
struts的请求是独立的线程,所以不会有你说的共用module的问题,建议仔细测试下。
------解决方案--------------------
这个问题还是一步一步debug吧。首先A上是提交表单还是直接访问这个url,你直接url访问的话是执行的get。另外你在A上把那个值设成2,然后B再访问试试,看会不会变成2
------解决方案--------------------
我说第二次的时候给setXmodel()的方法加个断点或者加个输出语句,看看是否执行,你做了没?
------解决方案--------------------
tSysDept是个什么玩意,为什么是静态的。
------解决方案--------------------
我感觉这跟ssh2没设么关系!应该是程序问题吧,还是debug找问题吧,顶一下!
------解决方案--------------------
有时候是少些了或者多写了这种很头疼啊。