- 浏览: 876363 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
Junjing:
非常感谢楼主的分享,受益匪浅!我是一位从业务规划和运营转需求分 ...
我们应当怎样做需求确认:评审与签字确认会 -
kersky:
感谢楼主的辛苦输出,半天看完了整个系列。对于一个转从开发转需求 ...
我们应当怎样做需求确认:评审与签字确认会 -
DEMONU:
必须要顶
谈谈软件开发的那些事儿 之 软件开发的轮回 -
dripstone:
非常感谢楼主,用了大半天的时间,一口气读完了需求分析阶段。好多 ...
我们应当怎样做需求确认:评审与签字确认会 -
Codepoe:
做了一些开发,看了楼主的文章,我深有感触,为自己的做法找到了理 ...
我们应当改变我们的设计习惯
使用DWR开始开发项目到现在,感觉真的经历了一段很长的路,因为其间遇到了很多的问题需要解决,一点儿不顺利。这个过程差不多总是这样的:写一小段程序,一运行就出错了,是什么原因呢,看了半天错误提示,不明白。怎么办,到DWR官方网站去看看吧,也许可以解决问题。如果不能,就把错误提示粘到百度去搜索一下国内网站吧。如果还不能,就到谷歌里去搜索一下国外网站。如果这些都不行,只能用最土的办法,设断点跟源码了。可以说DWR是我所用过的目前资料最少的一个框架,也是自身问题最多的一个框架。我所遇到过的很多问题都是通过跟踪源码的方式才发现和解决问题的。现在我就把发现到并解决的问题跟大家共享一下吧。当然它们中的有些问题不一定就是DWR的事,也有hibernate的问题。
一、转换一对多值对象出现的问题
我在《DWR帮助文档-dwr.xml文件的配置》一文中提到,我们应当把在dwr中用到的所有值对象都注册到dwr.xml配置文件中。在配置值对象的时候,有2种方式:使用model.*这种通配符的方式一次性将多个值对象进行注册;使用hibernate3或hibernate2的方式一个一个注册值对象。同时我也提到,使用第一种方式注册虽然简便,但存在不利于编写前端页面和性能差的问题,不推荐使用;使用第二种方式注册有利于程序的编写和性能的提高,但在dwr中存在bug。这样的bug是什么呢?我们不妨举一个实例来说明。假如在项目中存在部门和员工的值对象,并且是一对多的关系(每一个员工都只能在一个部门,但多个员工可以在用一个部门),那么hibernate在查询员工的时候会返回一个员工值对象的集合,集合中的每一个员工值对象都有一个部门属性,对应一个部门值对象,但多个员工值对象对应的可能是一个部门值对象。这个关系很清晰,也应该没有什么疑问,但在dwr将其转换为js中的对象的过程中却会发生错误。错误的提示是这样的:
-
org.directwebremoting.extend.MarshallException: Error marshalling com.htxx.demo.model.Employee: Ignoring request to inline on reference
for: Object:s0:{departmentId=Simple:"001", departmentName=Simple:"\u4EBA\u529B\u8D44\u6E90\u90E8", employees=Simple:null}. See the logs for more details. - at org.directwebremoting.convert.BasicObjectConverter.convertOutbound(BasicObjectConverter.java:200)
- at org.directwebremoting.dwrp.DefaultConverterManager.convertOutbound(DefaultConverterManager.java:192)
- ...
- Caused by: java.lang.IllegalStateException: Ignoring request to inline on reference for: Object:s0:{departmentId=Simple:"001", departmentName=Simple:"\u4EBA\u529B\u8D44\u6E90\u90E8", employees=Simple:null}
- at org.directwebremoting.dwrp.AbstractOutboundVariable.getReferenceVariable(AbstractOutboundVariable.java:148)
- at org.directwebremoting.dwrp.DefaultConverterManager.convertOutbound(DefaultConverterManager.java:181)
- at org.directwebremoting.convert.BasicObjectConverter.convertOutbound(BasicObjectConverter.java:189)
- ... 28 more
仔细查看和跟踪源码,我发现这个问题出在AbstractOutboundVariable类的getReferenceVariable方法中,它的源码是这样写的:
这个问题我同样在《DWR帮助文档-dwr.xml文件的配置》一文中提到过,就是dwr在转换一对一值对象关系时出现死循环的问题。假如Employee值对象存在一个且最多一个Address值对象的时候,Employee有一个Address属性指向一个Address值对象,而Address值对象也同样会有一个Employee属性指向这个Employee值对象。我们知道hibernate对于一对一关联是不进行延迟加载的,所以dwr在装载和转换Employee值对象的时候会去加载它的Address值对象,然后在加载这个Address值对象的时候会又去加载那个Employee值对象。如此反复加载就形成了死循环。解决这个问题的办法就是在dwr.xml配置Address的时候,使用exclude禁用它对Employee的加载。详细说明见《DWR帮助文档-dwr.xml文件的配置》,这里就不再罗嗦了。 在使用dwr执行插入和更新操作的时候,有时会出现以下的警告: 如果将log4j中dwr的级别降低为DEBUG级别,你还可以在控制台中看到一下提示: 其实你并没有在dwr中禁用这个属性,同时也正确地在值对象中编写了一个setXXX()方法的,这个问题到底出在哪里呢?我查看了dwr的源码发现,dwr是如何获得一个值对象的所有属性及其各自的get和set方法呢?是采用Java的反向机制。如果你通过自己去编写或修改某个属性及其它的get和set方法,而不是通过工具生成,那么反向机制就可能找不到这个属性的get和set方法(注意,是可能而并不总是这样)。这个问题解决的办法就是删除该属性的get和set方法,然后使用MyEclipse的get和set方法生成工具自动生成。 在使用dwr执行插入和更新操作的时候,有时会抛出这样一个离谱的异常: java.lang. 之所以说这个异常比较离谱,是因为它似乎就没有dwr什么事。事实上它也是没有dwr什么事,而是hibernate出错了。查看hibernate的官方网站你可以发现这个bug的发布,并在hibernate3.2.0.rc4以后的版本这解决这个问题了。将hibernate3换成最新版本后果然就解决这个问题了。 这个还是hibernate3的问题。在执行查询的时候在控制台显示这样一个错误: CharScanner; panic: ClassNotFoundException: org.hibernate.hql.ast.HqlToken 遇到这个问题不要怕,其实解决的方法很简单,就是在spring的配置文件ApplicationContext-hibernate.xml中,在sessionFactory的hibernateProperties属性中增加这样一段话: 在DWR2.0中提供了一些JDK5中才能使用的annotations的功能。然而,这个功能在JDK1.4的环境中进行启动或者部署会发生错误。抱歉的是这个错误信息我没有及时记录,日后补上。这个错误在网上可以轻易地搜索到解决方案,即在dwr.jar中删除掉org.directwebremoting.annotations.AnnotationsConfigurator这个类再重新部署就可以了。 同样的问题出现在hibernate3中,hibernate3对annotations的支持在JDK1.4中也可能出现异常,解决的办法就是在部署文件中删除掉hibernate-annotations.jar就可以了。 另外值得说明的是,以上2个问题并不是每次都会出现的。它们就如同幽灵一样有时出现有时不出现,因此我们并不需要总是删除这个类和jar包,只是在发生错误时才删除。
二、转换一对一值对象出现的问题
三、找不到值对象中set函数的问题
四、找不到值对象的LazyInitializer的问题
五、执行查询时找不到hibernate查询工厂类的问题
六、在JDK1.4中运行和部署DWR2和hibernate3出现的问题
评论
要么就是用dwr2,能说下,从dwr1.2 换到2 ,注意的问题吗,我用jdk1.4.2,hibernate3.1,谢谢。
换过一次,发生了错误。不敢随便替换了。有人做过升级dwr2吗?
我们项目采用dwr好长时间了,经常碰到一个个随机问题,偶尔弹出空白对话框。不知你是否见过或者给我一点解决问题的思路。
如果两个同时使用读写都是乱码!!
晕菜!!
那位知道如何更改写数据库的字符集控制?如何保证我写入数据库的是8859编码??
我将Weblogic和数据库设置成了相同的字符集,就不会出现乱码。
老师能不能把这句话具体说说??
filter里面也用utf8
是这样的吗??
1、数据库现在的编码是ISO8859-1.
2、通过ISO2GBK 修改Hiberate getter函数可以读出汉字,但是写入汉字的时候数据库中获得的全是 ????????????
3、我尝试过修改Setter函数,可是不行。
请教老师有没有更好的方法解决??是不是需要修改DWR的某个函数?
1、标签左对齐的问题。
2、字符集问题。感觉Encode Filter不起作用。
我的数据库现在是8859字符集,读出来的还是乱码,我临时使用转换函数可以正常显示,但是写入数据库的时候还是乱码,希望看到整体的解决方法。
3、在增加新纪录的时候又出现了问题。
35828 [ExecuteThread: '13' for queue: 'weblogic.kernel.Default'] INFO org.directwebremoting.impl.DefaultRemoter - Exec: InboxBus.updateInbox() 35875 [ExecuteThread: '13' for queue: 'weblogic.kernel.Default'] ERROR org.hibernate.property.BasicPropertyAccessor - IllegalArgumentException in class: com.sms.hiber.AbstractInbox, setter method of property: id 35875 [ExecuteThread: '13' for queue: 'weblogic.kernel.Default'] ERROR org.hibernate.property.BasicPropertyAccessor - expected type: java.lang.Long, actual value: java.lang.String 35906 [ExecuteThread: '13' for queue: 'weblogic.kernel.Default'] ERROR com.htxx.service.dao.DaoSupportHibernate3Imp - update failed! org.springframework.orm.hibernate3.HibernateSystemException: IllegalArgumentException occurred while calling setter of com.sms.hiber.AbstractInbox.id; nested exception is org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of com.sms.hiber.AbstractInbox.id org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of com.sms.hiber.AbstractInbox.id at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:70) at org.hibernate.tuple.AbstractTuplizer.setIdentifier(AbstractTuplizer.java:130) at org.hibernate.persister.entity.BasicEntityPersister.setIdentifier(BasicEntityPersister.java:2949) at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:147) at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:108) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:184) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:173) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:96) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:69) at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:468) at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:463) at org.springframework.orm.hibernate3.HibernateTemplate$18.doInHibernate(HibernateTemplate.java:693) at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:366) at org.springframework.orm.hibernate3.HibernateTemplate.saveOrUpdate(HibernateTemplate.java:690) at com.htxx.service.dao.DaoSupportHibernate3Imp.update(DaoSupportHibernate3Imp.java:53) at com.htxx.service.dao.BasicDao.update(BasicDao.java:57) at com.sms.bus.imp.InboxBusImp.updateInbox(InboxBusImp.java:85) 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:324) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:287) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:181) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176) at $Proxy9.updateInbox(Unknown Source) 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:324) at org.directwebremoting.impl.ExecuteAjaxFilter.doFilter(ExecuteAjaxFilter.java:34) at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.java:423) at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:426) at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:280) at org.directwebremoting.servlet.PlainCallHandler.handle(PlainCallHandler.java:52) at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:101) at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:120) at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1006) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6724) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3764) at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2644) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178) Caused by: java.lang.IllegalArgumentException: argument type mismatch 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:324) at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:40) ... 54 more 35953 [ExecuteThread: '13' for queue: 'weblogic.kernel.Default'] WARN org.directwebremoting.impl.DefaultRemoter - Method execution failed: org.springframework.orm.hibernate3.HibernateSystemException: IllegalArgumentException occurred while calling setter of com.sms.hiber.AbstractInbox.id; nested exception is org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of com.sms.hiber.AbstractInbox.id org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of com.sms.hiber.AbstractInbox.id at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:70) at org.hibernate.tuple.AbstractTuplizer.setIdentifier(AbstractTuplizer.java:130) at org.hibernate.persister.entity.BasicEntityPersister.setIdentifier(BasicEntityPersister.java:2949) at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:147) at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:108) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:184) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:173) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:96) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:69) at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:468) at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:463) at org.springframework.orm.hibernate3.HibernateTemplate$18.doInHibernate(HibernateTemplate.java:693) at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:366) at org.springframework.orm.hibernate3.HibernateTemplate.saveOrUpdate(HibernateTemplate.java:690) at com.htxx.service.dao.DaoSupportHibernate3Imp.update(DaoSupportHibernate3Imp.java:53) at com.htxx.service.dao.BasicDao.update(BasicDao.java:57) at com.sms.bus.imp.InboxBusImp.updateInbox(InboxBusImp.java:85) 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:324) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:287) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:181) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176) at $Proxy9.updateInbox(Unknown Source) 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:324) at org.directwebremoting.impl.ExecuteAjaxFilter.doFilter(ExecuteAjaxFilter.java:34) at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.java:423) at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:426) at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:280) at org.directwebremoting.servlet.PlainCallHandler.handle(PlainCallHandler.java:52) at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:101) at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:120) at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1006) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6724) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3764) at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2644) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178) Caused by: java.lang.IllegalArgumentException: argument type mismatch 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:324) at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:40) ... 54 more 36093 [ExecuteThread: '13' for queue: 'weblogic.kernel.Default'] WARN org.directwebremoting.dwrp.BaseCallMarshaller - --Erroring: batchId[0] message[org.springframework.orm.hibernate3.HibernateSystemException: IllegalArgumentException occurred while calling setter of com.sms.hiber.AbstractInbox.id; nested exception is org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of com.sms.hiber.AbstractInbox.id] 36500 [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] WARN org.directwebremoting.convert.BasicObjectConverter - Missing java bean property to match javascript property: tbody. For causes see debug level logs: 36500 [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] INFO org.directwebremoting.impl.DefaultRemoter - Exec: InboxBus.findInbox() 36500 [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] DEBUG com.sms.hiber.Inbox - 开始查询
十分感谢。
后面可能还有很多问题:
1、如何使用 group by 这样的数据分组?
2、httg 中左对齐问题等等。
我用alert(person.name)也得到了值。
<div align="center" id="div">
<input type="text" name="name" id="name">
</div>
有一个bean为Person,有属性String ID,String name,还有一个Set set。
在PersonBus中有一个方法addPerson(Person person){}
var person = {div:null,name:null};
dwr.util.getValues(person);
PersonBus.addPerson(person);
跟到后台person的name属性为null
<input type="text" id="id">id的值应当与object中的属性对应
我在将obiect传到后台的时候值为null啊?这是什么原因呢?
{id:null,name:null}中的id和name有什么要求么?
发表评论
-
DWR帮助说明-服务器端程序的编写
2007-09-08 13:05 4985也许朋友们会以为这是DWR官方发布的什么帮助,但非常遗憾这 ... -
一个dwr+spring+hibernate的示例
2007-09-05 21:55 21642这是一个运用dwr+spring+hibernate这样一个框 ... -
DWR帮助说明-如何编写通用的单行编辑框
2007-09-03 14:46 5567也许朋友们会以为这 ... -
DWR帮助说明-如何编写通用的列表显示框
2007-09-03 14:44 4894也许朋友们会以为这是DWR官方发布的什么帮助,但非常遗憾这 ... -
DWR帮助文档-dwr.xml文件的配置
2007-09-03 13:48 9588也许朋友们会以为这是DWR官方发布的什么帮助,但非常遗憾这不是 ...
相关推荐
4. **DWR的bug及其解决方法** 由于DWR不是官方文档,可能遇到的问题需要通过社区支持和源码分析来解决。Fangang的文档可能包含了一些常见问题的解决方案,这对于遇到困难的开发者来说是非常有价值的资源。 5. **...
DWR.xml配置文件说明书 1、 建立dwr.xml 配置文件 任何一个dwr.xml的文件都需要包含DWR DOCTYPE的声明行,格式如下: <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" ...
**DWR2.0.6** 是Direct Web Remoting的缩写,是一个JavaScript到Java的反向Ajax库,允许在浏览器端直接调用服务器上的Java方法,实现实时交互。DWR简化了前端与后端的数据交换,提高了用户体验。2.0.6版本改进了安全...
修正与很多JS库(如prototype,JQuery,dwr等)的冲突问题 2.解决不能“后退”的问题 3.解决IE6中,今天和选中的日期没有以其它颜色显示的问题 4.解决日期选择器被动态增加的iframe覆盖的问题 <br>演示地址:...
- **避免常见的陷阱**:为了避免开发者在实现Ajax时遇到的问题,书中还列举了一些常见的错误及其解决方案。 - **Ajax模式**:书中介绍了一些常用的Ajax模式,如Fade Anything Technique (FAT)、Auto Refresh、...
- 单例,命令,工厂,工厂方法,观察者,模板,外观,访问者,状态,装饰器,桥接,DAO,责任链等:理解和应用设计模式。 掌握这些技术和框架将使你成为一位全面的J2EE程序员,能够适应各种企业级项目的挑战。不断...
* 提供了参照DWR后与后台的通讯包Direct,支持具有明显的REST风格的CRUD服务 * 一系列的新的组件和例子,包括有图表(Charting, By YUI Flash) * Bug修正,大约有一千多个吧~IE6下面的内存管理亦有所改善了 * 文档...
cjlib可能提供了丰富的类和方法,以及详细的文档说明,帮助开发者快速上手。 4. **多平台支持**:考虑到跨平台兼容性,cjlib可能已经针对不同的操作系统(如Windows、Linux、macOS)进行了优化,确保在不同环境下都...
后台基于javabean servlet 前台基于 dwr ext 等 简单功能实现的斗地主 可能有bug 分享
文件太大,无法上传,请联系... 2008年6月修正了生成自定义MVC框架时的包名不能自定义的bug,修正了MYECLIPSE5.5开发struts1.3的bug 自定义MVC框架时加入了批量生成功能,支持多选文件 加入了运行前的提示框
后台基于javabean servlet 前台基于 dwr ext 等 简单功能实现的斗地主大厅 可能有bug 分享
2008年6月,修复了生成自定义MVC框架时的包名不能自定义的问题,并解决了在MyEclipse 5.5下开发Struts 1.3时遇到的bug。 此插件适用于Eclipse 3.2, 3.3 和 MyEclipse 5.5, 6.0平台,并且提供免费版本供开发者使用。...
* 提供了参照DWR后与后台的通讯包Direct,支持具有明显的REST风格的CRUD服务 * 一系列的新的组件和例子,包括有图表(Charting, By YUI Flash) * Bug修正,大约有一千多个吧~IE6下面的内存管理亦有所改善了 * 文档...
这个wiki提供jetty的入门教程、基础配置、功能特性、优化、安全、JavaEE、监控、常见问题、故障排除帮助等等。它包含教程、使用手册、视频、特征描述、参考资料以及常见问题。 Jetty文档 ---------------- 入门...
* 提供了参照DWR后与后台的通讯包Direct,支持具有明显的REST风格的CRUD服务 * 一系列的新的组件和例子,包括有图表(Charting, By YUI Flash) * Bug修正,大约有1k多个吧~IE6下面的内存管理亦有所改善了 * ...
- **////与处理系统**:此项目采用了Struts2.1、Hibernate、Spring、DWR、Log4j、JSP等技术,设计模式为B/S模式下的SSH框架。项目涉及模块化设计、分层架构、数据处理与权限管理,展现了复杂系统的设计与实现能力。...
只要java基础扎实,再稍懂一点js即可,真的是为java开发人员量身定制的一套框架啊),框架以Spring Framework为核心、Jsp+Dwr作为模型视图控制器、Hibernate作为数据库操作层。BAMS 2.5 更新日志:2015-07-091、修复...
I have created a .dwr search query that will find velocity code that does not meet this standard and replace it with the correct spacing. see http://velocity.gilluminate.com to obtain it.] [Version ...