论坛首页 Web前端技术论坛

一个dwr+spring+hibernate的示例

浏览 24775 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-01-31  
不错。项目刚好用到这个!
0 请登录后投票
   发表时间:2008-04-17  
LZ的DAO好象没共享吧,这才是我想看到的东西!
0 请登录后投票
   发表时间:2008-05-08  
bbwang8088 写道
你好,对你发表dwr演示程序很感兴趣,但是我按照你所写步骤不能运行,我的运行环境是tomcat5.5、jdk1.5。能否把你的web容器内的dwr演示程序直接给我看看,可以的话发我邮箱bbwang8088@126.com,谢谢。

这个示例是在jdk1.4下编写的,但一些朋友告诉我他们在jdk1.5下也可以运行。不知道你是什么问题,可以把错误信息挑关键的发上来。
0 请登录后投票
   发表时间:2008-05-08  
xk84123 写道
问题的原因是,dwr调用方法后,如果返回的POJO中包含延迟加载的属性,那么系统就会抛出session closed的异常。转换器我使用的是Hibernate3,如果用bean转换器的话,就失去延迟加载的意义了。

然后我在web.xml中配置了OpenSessionInViewFilter,虽然不会抛出异常了。但是我无法get设置了延迟加载的属性,返回的都是null。

一些朋友说,在return POJO之前,先把需要的属性添加到集合中或者使用Hibernate.initliz。但是这些解决方案都不够灵活,您有更好的方法吗?

如果有描述不清楚的地方还请见谅,麻烦您了。


你的问题可能是:hibernate的延迟加载只能在应用服务器端有效,但dwr往往要到浏览器端才会去读取值对象的属性,因此再也不可能延迟加载了。我认为解决这个问题的办法就是提前加载,也就是在应用服务器端加载,因为作为开发人员肯定知道随后的程序需要读取哪些属性。因此,我在daoSupport.jar中提供了一个方案,你可以看看com.htxx.service.dao.PreloadProps,具体的使用见我的示例中EmployeeBusImp中的这一段:
public ResultSet findEmployee(Condition condition) {
		return new PreloadProps(this.getDao().query(Employee.class, condition),
				new PreloadProxy(){
					public Object[] PreloadProperty(Object vo) {
						Employee emp = (Employee)vo;
						return new Object[]{emp.getDepartment()};
					}}
		);
	}
0 请登录后投票
   发表时间:2008-05-09  
谢谢分享,学习一下
不过我添加了21个部门都还没分页
没找到分页设置的地方哦

还有,holly-x.gif图标貌似显示隐藏用的。
但没效果啊
0 请登录后投票
   发表时间:2008-05-12  
shim 写道
谢谢分享,学习一下
不过我添加了21个部门都还没分页
没找到分页设置的地方哦

还有,holly-x.gif图标貌似显示隐藏用的。
但没效果啊

抱歉,有个小小的BUS所以分页失效,在/WebRoot/department/index.jsp中47行,把if(condition){condition=iniConditions;}改为if(!condition){condition=iniConditions;}就可以了。员工列表是正确的,你也可以参照它。
这里我添加了个默认设置iniConditions,它的定义在../hxtg/public/dwr/util.js中。如果要为每个页面单独设置,可以这样写:
if(!condition){condition={properties:[],operators:[],values:[],page:1,size:12};}
其它都照写,把size改为你需要的每页行数就可以了
0 请登录后投票
   发表时间:2008-05-13  
做的很不错啊...
我也正在用这写技术做项目...
谢过
0 请登录后投票
   发表时间:2008-05-14  
fangang 写道
shim 写道
谢谢分享,学习一下
不过我添加了21个部门都还没分页
没找到分页设置的地方哦

还有,holly-x.gif图标貌似显示隐藏用的。
但没效果啊

抱歉,有个小小的BUS所以分页失效,在/WebRoot/department/index.jsp中47行,把if(condition){condition=iniCondition;}改为if(!condition){condition=iniCondition;}就可以了。员工列表是正确的,你也可以参照它。
这里我添加了个默认设置iniCondition,它的定义在../hxtg/public/dwr/util.js中。如果要为每个页面单独设置,可以这样写:
if(!condition){condition={properties:[],operators:[],values:[],page:1,size:12};}
其它都照写,把size改为你需要的每页行数就可以了


还有问题哦,condition=iniCondition应该是condition=iniConditions吧,

还有

员工页面老提示'sex'为空或不是对象的,但数据库表sex字段是有值的
0 请登录后投票
   发表时间:2008-05-14  
shim 写道
员工页面老提示'sex'为空或不是对象的,但数据库表sex字段是有值的

在emplpyee.jsp的edit()里加一段调试函数:alertValue(vo);看看传过来的vo中是否有sex属性
0 请登录后投票
   发表时间:2008-05-21  
正在整理dwr的东西,有时间与lz交流
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics