- 浏览: 882510 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
Junjing:
非常感谢楼主的分享,受益匪浅!我是一位从业务规划和运营转需求分 ...
我们应当怎样做需求确认:评审与签字确认会 -
kersky:
感谢楼主的辛苦输出,半天看完了整个系列。对于一个转从开发转需求 ...
我们应当怎样做需求确认:评审与签字确认会 -
DEMONU:
必须要顶
谈谈软件开发的那些事儿 之 软件开发的轮回 -
dripstone:
非常感谢楼主,用了大半天的时间,一口气读完了需求分析阶段。好多 ...
我们应当怎样做需求确认:评审与签字确认会 -
Codepoe:
做了一些开发,看了楼主的文章,我深有感触,为自己的做法找到了理 ...
我们应当改变我们的设计习惯
这是一个运用dwr+spring+hibernate这样一个框架编写的示例。它展示了一下内容:
1、在dwr中尝试编写的一些通用的代码,包括如何编写一个通用的列表显示框并实现分页、如何编写一个通用的单行编辑框、如何编辑一个通用的存盘和删除程序等等。
2、在dwr中如何与spring兼容,调用bus中的方法;在dwr中如何与hibernate兼容,在页面端操作值对象,以及处理值对象间的各种关系。
3、如何在spring中实现单dao,使这个单dao既可以与hibernate隔离,使其低耦合高内聚,提高可维护性,又能满足各个bus的业务需要,简化开发的过程。
不是美工,界面比较外行,见谅了:)
示例在MyEclipse中安装部署的步骤:
1、创建一个新的web项目并拷贝示例中的文件到项目中。注意web.xml文件应当是将原文件覆盖。
2、添加spring和hibernate。点击项目树中的项目名按Alt+Enter键,弹出项目属性对话框。选择“Java Build Path”中的“Libraries”标签,然后点击“Add Library”按钮,选择“MyEclipse Libraries”,点击“Next”,选择“Hibernate 3.0 Core Libraries”、“Spring 1.2 AOP Libraries”、“Spring 1.2 Core Libraries”、“Spring 1.2 ORM/DAO/Hibernate Libraries”、“Spring 1.2 Web Libraries”,点击“Finish”按钮。
3、点击“Add External JARs”按钮,添加dwr.jar、daosupport.jar、hxtg.jar、hibernate3(必须将hibernate3升级到3.2以上)以及其它数据库相关的jar包到项目中。添加完成以后记得重新部署应用服务器。
4、创建数据库实例,如果是oracle,在pl/sql中运行示例中的employee.sql创建数据库对象。
5、修改ApplicationContext-hibernate.xml中datasource的连接属性为你的数据库。部署完成!
部署完成后运行可能会在部分功能中出错。这些问题的解决我会在《DWR帮助说明-dwr的bug及其解决方法》中详细讨论。
重要提示:部署完成以后需要打开Department.hbm.xml和Employee.hbm.xml,修改schema="TEST"为你自己的用户名。
相关文档:
如何在struts+spring+hibernate的框架下构建低耦合高内聚的软件
- employee.rar (272.2 KB)
- 下载次数: 2431
- employee.rar (2.6 MB)
- 描述: 重新修订了一下
- 下载次数: 8896
评论
1.现团队采用jquery+spring+hibernate框架,但团队里的开发人员做出来的页面都很丑,而且开发效率很低,他们反映说要用jquery对js要很熟练,能帮忙分析一下是什么原因吗,因为这个项目是一个社区网站项目,对页面的用户体验设计,布局美观等要求都挺高的,
2.采用单DAO,将DAO层完全封装,这句没看明白
另外,楼主的设计模式大作什么时候出啊,现在团队的设计较差,等着跟你学习啊,后回去改造提高团队的设计能力,呵。
1.确实需要相当的功底,建议你们不要什么都自己开发,多在网上找找别人写好的东西改改。另外,最好项目组里找个大牛,搭建开发平台解决大部分问题,这样可以降低其它开发人员的技术门槛。
2.看看我的示例dwr+spring+hibernate,这个示例比较早了,用的是jdk1.4,但其中的思想同样可以应用到jdk5,jdk6,只是其中一些代码得改改
写东西不容易,写点儿好的东西实在不容易,这个得慢慢来,
jquery+dwr+spring+hibernate,jquery在页面展现方面非常突出,但前后台交互方面还弱了一些,使用dwr正好弥补了它的缺陷。
dwr简直就是自动化的mvc,它将这一层的所有操作都自动化了,你什么都不需要做,完成配置就可以了:值对象的配置、spring的配置。
采用单DAO,将DAO层完全封装,你不需要再关心数据持久的问题了。整个框架中,开发人员只需要关心2个东西,页面端的js和BUS。
----
楼主,有两个问题想请教你:
1.现团队采用jquery+spring+hibernate框架,但团队里的开发人员做出来的页面都很丑,而且开发效率很低,他们反映说要用jquery对js要很熟练,能帮忙分析一下是什么原因吗,因为这个项目是一个社区网站项目,对页面的用户体验设计,布局美观等要求都挺高的,
2.采用单DAO,将DAO层完全封装,这句没看明白
另外,楼主的设计模式大作什么时候出啊,现在团队的设计较差,等着跟你学习啊,后回去改造提高团队的设计能力,呵。
jquery+dwr+spring+hibernate,jquery在页面展现方面非常突出,但前后台交互方面还弱了一些,使用dwr正好弥补了它的缺陷。
dwr简直就是自动化的mvc,它将这一层的所有操作都自动化了,你什么都不需要做,完成配置就可以了:值对象的配置、spring的配置。
采用单DAO,将DAO层完全封装,你不需要再关心数据持久的问题了。整个框架中,开发人员只需要关心2个东西,页面端的js和BUS。
[main] INFO org.springframework.web.context.support.XmlWebApplicationContext - Bean factory for application context [Root WebApplicationContext]: org.springframework.beans.factory.support.DefaultListableBeanFactory defining beans [departmentBus,employeeBus,springContext,daoSupport,genericDao,dataSource,sessionFactory,transactionManager,transactionManagerJDBC,transactionInterceptor,defaultTxAttributes,InvoiceTxAttributes,beanNameAutoProxyCreator]; root of BeanFactory hierarchy
77 [main] INFO org.springframework.web.context.support.XmlWebApplicationContext - 13 beans defined in application context [Root WebApplicationContext]
822 [main] INFO org.springframework.web.context.support.XmlWebApplicationContext - Bean 'beanNameAutoProxyCreator' is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2265 [main] ERROR org.springframework.web.context.ContextLoader - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'departmentBus' defined in file [E:\javaprogram\apache-tomcat-6.0.16\webapps\employee\WEB-INF\classes\ApplicationContext-bus.xml]: Cannot resolve reference to bean 'genericDao' while setting bean property 'dao'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'genericDao' defined in file [E:\javaprogram\apache-tomcat-6.0.16\webapps\employee\WEB-INF\classes\ApplicationContext-dao.xml]: Cannot resolve reference to bean 'daoSupport' while setting bean property 'daoSupport'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'daoSupport' defined in file [E:\javaprogram\apache-tomcat-6.0.16\webapps\employee\WEB-INF\classes\ApplicationContext-dao.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in file [E:\javaprogram\apache-tomcat-6.0.16\webapps\employee\WEB-INF\classes\ApplicationContext-hibernate.xml]: Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: Mapping directory location [ServletContext resource [/com/htxx/demo/model/Department.hbm.xml]] does not denote a directory
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'genericDao' defined in file [E:\javaprogram\apache-tomcat-6.0.16\webapps\employee\WEB-INF\classes\ApplicationContext-dao.xml]: Cannot resolve reference to bean 'daoSupport' while setting bean property 'daoSupport'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'daoSupport' defined in file [E:\javaprogram\apache-tomcat-6.0.16\webapps\employee\WEB-INF\classes\ApplicationContext-dao.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in file [E:\javaprogram\apache-tomcat-6.0.16\webapps\employee\WEB-INF\classes\ApplicationContext-hibernate.xml]: Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: Mapping directory location [ServletContext resource [/com/htxx/demo/model/Department.hbm.xml]] does not denote a directory
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'daoSupport' defined in file [E:\javaprogram\apache-tomcat-6.0.16\webapps\employee\WEB-INF\classes\ApplicationContext-dao.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in file [E:\javaprogram\apache-tomcat-6.0.16\webapps\employee\WEB-INF\classes\ApplicationContext-hibernate.xml]: Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: Mapping directory location [ServletContext resource [/com/htxx/demo/model/Department.hbm.xml]] does not denote a directory
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in file [E:\javaprogram\apache-tomcat-6.0.16\webapps\employee\WEB-INF\classes\ApplicationContext-hibernate.xml]: Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: Mapping directory location [ServletContext resource [/com/htxx/demo/model/Department.hbm.xml]] does not denote a directory
java.lang.IllegalArgumentException: Mapping directory location [ServletContext resource [/com/htxx/demo/model/Department.hbm.xml]] does not denote a directory
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:707)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1099)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:400)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:144)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:182)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:105)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1054)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:863)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:382)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:144)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:182)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:105)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1054)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:863)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:382)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:144)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:182)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:105)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1054)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:863)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:382)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:144)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:283)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:321)
at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:139)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:252)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:190)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4350)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:924)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:887)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1147)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
2008-7-23 16:46:36 org.apache.catalina.core.StandardContext listenerStart
严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'departmentBus' defined in file [E:\javaprogram\apache-tomcat-6.0.16\webapps\employee\WEB-INF\classes\ApplicationContext-bus.xml]: Cannot resolve reference to bean 'genericDao' while setting bean property 'dao'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'genericDao' defined in file [E:\javaprogram\apache-tomcat-6.0.16\webapps\employee\WEB-INF\classes\ApplicationContext-dao.xml]: Cannot resolve reference to bean 'daoSupport' while setting bean property 'daoSupport'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'daoSupport' defined in file [E:\javaprogram\apache-tomcat-6.0.16\webapps\employee\WEB-INF\classes\ApplicationContext-dao.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in file [E:\javaprogram\apache-tomcat-6.0.16\webapps\employee\WEB-INF\classes\ApplicationContext-hibernate.xml]: Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: Mapping directory location [ServletContext resource [/com/htxx/demo/model/Department.hbm.xml]] does not denote a directory
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'genericDao' defined in file [E:\javaprogram\apache-tomcat-6.0.16\webapps\employee\WEB-INF\classes\ApplicationContext-dao.xml]: Cannot resolve reference to bean 'daoSupport' while setting bean property 'daoSupport'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'daoSupport' defined in file [E:\javaprogram\apache-tomcat-6.0.16\webapps\employee\WEB-INF\classes\ApplicationContext-dao.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in file [E:\javaprogram\apache-tomcat-6.0.16\webapps\employee\WEB-INF\classes\ApplicationContext-hibernate.xml]: Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: Mapping directory location [ServletContext resource [/com/htxx/demo/model/Department.hbm.xml]] does not denote a directory
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'daoSupport' defined in file [E:\javaprogram\apache-tomcat-6.0.16\webapps\employee\WEB-INF\classes\ApplicationContext-dao.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in file [E:\javaprogram\apache-tomcat-6.0.16\webapps\employee\WEB-INF\classes\ApplicationContext-hibernate.xml]: Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: Mapping directory location [ServletContext resource [/com/htxx/demo/model/Department.hbm.xml]] does not denote a directory
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in file [E:\javaprogram\apache-tomcat-6.0.16\webapps\employee\WEB-INF\classes\ApplicationContext-hibernate.xml]: Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: Mapping directory location [ServletContext resource [/com/htxx/demo/model/Department.hbm.xml]] does not denote a directory
java.lang.IllegalArgumentException: Mapping directory location [ServletContext resource [/com/htxx/demo/model/Department.hbm.xml]] does not denote a directory
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:707)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1099)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:400)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:144)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:182)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:105)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1054)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:863)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:382)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:144)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:182)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:105)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1054)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:863)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:382)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:144)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:182)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:105)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1054)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:863)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:382)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:144)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:283)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:321)
at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:139)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:252)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:190)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4350)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:924)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:887)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1147)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
2008-7-23 16:46:36 org.apache.catalina.core.StandardContext start
现在只是显示了第一页的数据12条,点击下一页,跳到首页跳到尾页都弹出提示框,显示“ERROR”!
晕
在emplpyee.jsp的edit()里加一段调试函数:alertValue(vo);看看传过来的vo中是否有sex属性
不过我添加了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字段是有值的
我也正在用这写技术做项目...
谢过
学习中
不过我添加了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改为你需要的每页行数就可以了
不过我添加了21个部门都还没分页
没找到分页设置的地方哦
还有,holly-x.gif图标貌似显示隐藏用的。
但没效果啊
然后我在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()}; }} ); }
这个示例是在jdk1.4下编写的,但一些朋友告诉我他们在jdk1.5下也可以运行。不知道你是什么问题,可以把错误信息挑关键的发上来。
我是把httx-tag.tld放在 WEB-INF下的啊
org.apache.jasper.JasperException: An exception occurred processing JSP page /department/index.jsp at line 7
4: <html>
5: <head>
6: <title>部门信息</title>
7: <hxtg:head></hxtg:head>
8:
9: <script type='text/javascript' src='../dwr/engine.js'></script>
10: <script type='text/javascript' src='../dwr/util.js'></script>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:515)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:408)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
javax.servlet.ServletException: java.lang.NoClassDefFoundError
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:855)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:784)
org.apache.jsp.department.index_jsp._jspService(index_jsp.java:187)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:384)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
java.lang.NoClassDefFoundError
com.htxx.service.taglib.tags.HeadTag.doStartTag(HeadTag.java:26)
org.apache.jsp.department.index_jsp._jspx_meth_hxtg_005fhead_005f0(index_jsp.java:202)
org.apache.jsp.department.index_jsp._jspService(index_jsp.java:108)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:384)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
发表评论
-
DWR帮助说明-dwr的bug及其解决方法
2007-09-09 20:59 24392使用DWR开始开发项目到现在,感觉真的经历了一段很长的路,因为 ... -
DWR帮助说明-服务器端程序的编写
2007-09-08 13:05 5022也许朋友们会以为这是DWR官方发布的什么帮助,但非常遗憾这 ... -
DWR帮助说明-如何编写通用的单行编辑框
2007-09-03 14:46 5615也许朋友们会以为这 ... -
DWR帮助说明-如何编写通用的列表显示框
2007-09-03 14:44 4937也许朋友们会以为这是DWR官方发布的什么帮助,但非常遗憾这 ... -
DWR帮助文档-dwr.xml文件的配置
2007-09-03 13:48 9628也许朋友们会以为这是DWR官方发布的什么帮助,但非常遗憾这不是 ...
相关推荐
该示例使用MyEclipse 5.5 IDE用来整合四个技术(Struts 1.2, Spring 2.0, Hibernate 3.2和Ajax技术)的轻量级的JavaEE。 操作步骤如下: 1. 下载并解压之后,使用MyEclipse导入工程 2. 找到demo目录中的.sql数据库...
《DWR+EXT+SPRING+HIBERNATE:一个综合示例解析》 DWR (Direct Web Remoting)、EXT、Spring 和 Hibernate 是 Java Web 开发中的四大核心技术,它们各自在不同的领域发挥着关键作用。DWR 提供了一种在浏览器与服务器...
1、在dwr中尝试编写的一些通用的代码,包括如何编写一个通用的列表显示框并实现分页、如何编写一个通用的单行编辑框、如何编辑一个通用的存盘和删除程序等等。 <br>2、在dwr中如何与spring兼容,调用bus中的方法...
本项目实例是关于"ext+json+dwr+spring+hibernate"的整合,这是一个常见的技术栈组合,用于创建功能丰富的Web应用程序。下面将详细解释这些技术及其整合方式。 1. **EXT**:EXT是一个基于JavaScript的富客户端框架...
总之,这个示例是一个很好的学习资源,帮助开发者了解如何在Java Web环境中将Ajax、Spring、Hibernate和Struts结合使用,实现复杂的业务流程。通过这个案例,你可以深入理解这些框架的核心功能,以及它们在实际开发...
【标题】"hibernate+dwr+spring+jstl的demo"揭示了这是一个结合了四个关键技术的示例项目,主要用于展示如何在Web开发中整合这些技术。这些技术分别是Hibernate(对象关系映射框架)、Direct Web Remoting (DWR)(一...
综上所述,"ext2.0+Hibernate+dwr+spring列子"是一个综合性的Web开发示例,它演示了如何利用EXT2.0创建用户友好的界面,借助Hibernate处理数据库操作,通过DWR实现前后端交互,以及使用Spring框架来组织和管理整个...
【标题】:“DWR+Hibernate+Spring未完成例子”揭示了这个压缩包中包含的是一个未完成的示例项目,该示例项目整合了Direct Web Remoting (DWR)、Hibernate ORM框架和Spring框架。这三者都是Java Web开发中的重要组件...
【标题】"Ext+dwr+spring做的例子程序"是一个整合了三个关键技术的示例应用,主要展示了如何在Java Web开发中结合使用EXTJS(Ext)前端框架、Direct Web Remoting (DWR) 和Spring框架。这三个技术在现代企业级应用...
Struts2、Spring、Hibernate和DWR是Java Web开发中常用的四大框架,它们各自负责不同的功能,协同工作能构建出高效、灵活的企业级应用。在这个小实例中,开发者结合这四个框架来展示了一个完整的后端架构。 Struts2...
在这个"Struts+Spring+Hibernate+Ajax的Demo"中,开发者使用了这些技术来创建一个功能丰富的示例应用。下面将详细阐述这四种技术以及DWR和Dojo在其中的作用。 **Struts** 是一个开源的MVC(Model-View-Controller)...
这个配置示例是基于目前最新的技术栈,旨在提供一个高效、稳定的开发环境。 首先,我们需要了解SSH框架。SSH是Struts2、Spring和Hibernate的缩写,分别代表了MVC模式中的Action层、Service层和持久化层。Struts2是...
在Web开发领域,Java技术栈中的Ajax(DWR)、Spring、Hibernate和Struts是四个非常重要的组件,它们各自承担着不同的职责,共同构建了一个高效、灵活的Web应用程序。本项目结合了这四者,实现了一个登录注册系统,为...
标题 "ext2+spring+hibernate+dwr.rar_dwr MenuManage.js_ext2 ja" 提示我们这是一个关于集成技术的项目,其中包含了ext2、Spring、Hibernate和DWR(Direct Web Remoting)四个主要组件。这个项目的具体实现是通过...
标题中的"spring+struts+hibernate+dwr+jstl_example.rar"表明这是一个使用了Spring、Struts、Hibernate、Direct Web Remoting (DWR) 和JSP Standard Tag Library (JSTL)技术的示例项目。这个组合是Java Web开发中...
Struts1.2、Hibernate3.2、Spring2.5 和 DWR2.0 是一组经典的Java企业级开发框架组合,它们在Web应用程序开发中扮演着重要的角色。这些框架的集成为开发人员提供了强大的功能,使得后端数据管理、业务逻辑处理以及...
结合上述四个框架,"sturts2+spring+hibernate+dwr2例子"很可能是展示如何在实际项目中整合这些技术的一个示例应用。"springch01"这个文件名可能代表了关于Spring的初步章节或者配置文件,包含了Spring容器的配置,...
这个“Struts2+spring依赖注入+Hibernate+Dwr”的例子,是一个综合性的Web应用程序示例,旨在展示这四个技术如何协同工作。 Struts2作为MVC(模型-视图-控制器)框架,主要负责处理HTTP请求,调度控制流程,并将...
这个"高效率的dw+spring+hibernate分页演示例子"提供了一个实用的示例,展示了如何将这三个框架整合起来,以实现高效的数据分页功能。 首先,让我们来逐一了解这三个技术: 1. **DWR (Direct Web Remoting)**:DWR...
开发环境:Windows XP sp3、SQL Server 2005、JDK 1.6、Struts2.1.6、Spring 2.0、Hibernate...至于声明式事务部分,你可以参见另外一个资源“Spring 2.0 + Struts 1.2 + Hibernate 3.2 + DWR 2.0 的JavaEE应用示例”