- 浏览: 547467 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (740)
- css (4)
- jquery (8)
- javascript (23)
- html (0)
- uml (0)
- 设计模式 (1)
- 开发工具 (14)
- json (4)
- struts 1.x (3)
- spring (3)
- hibernate (6)
- struts 2.x (17)
- JFreechart (0)
- j2se (48)
- jsp (9)
- flex (22)
- 找工作 (1)
- 技术杂谈 (18)
- 网络编程 (5)
- io流 (1)
- ORACLE (15)
- 报表 (3)
- extjs (11)
- jpbm (2)
- swing (5)
- jspereports (3)
- sql (1)
- linux (15)
- ps (1)
- storm (4)
- hbase (8)
- li (0)
- python (1)
- hive (3)
- 机器学习 (1)
- hdfs (1)
- elasticsearch (1)
- hadoop 2.2 (5)
- hadoop (1)
最新评论
-
Tristan_S:
这个有点意思
ASM -
starryskydog:
程序修改detail band部分的样式 如内容字体大小 ...
使用jasperReport实现动态表头 -
samwong:
Good, so usefule
使用YUI Compressor压缩CSS/JS -
gc715409742:
能够告诉我怎么在web项目中使用YUI Compressor? ...
使用YUI Compressor压缩CSS/JS -
JsonTeye:
您好! 我看你的代码,我现在也在做动态报表,实现功能由用户自己 ...
使用jasperreport动态生成pdf,excel,html
看了上面XML的配置,大家一定可以看明白如何配置DWR,现在具体的讲讲. 这部分是可选配置的,所以在上面的配置文件中没有,声明那些用于建立远程bean和在方法调用中转换bean的类.多数情况下可以不必使用它,如果你想定义一个新的creator或者converter那么就必须在这部分中声明,具体的可以查看dwr.jar中的dwr.xml是如何配置的,或者到它的官网看看! 1. allow段落里面定义的是DWR可以创建和转换的类。 2.Creators dwr.xml文件中的create元素的结构如下: ... 这里的多数元素都是可选的 - 你真正必须知道的是指定一个creator和一个javascript名字。 creator是用来指定使用那种创造器, DWR1.1有八种创造器。它们是: new: 用Java的new关键字创造对象。none: 它不创建对象scripted: 通过BSF使用脚本语言创建对象,例如BeanShell或Groovy。spring: 通过Spring框架访问Bean。jsf: 使用JSF的Bean。 (v1.1+)struts: 使用Struts的FormBean。 (v1.1+)pageflow: 访问Beehive或Weblogic的PageFlow。 (v1.1+)ejb3 如果你需要写自己的创造器,你必须在init部分注册它。none 创造器不创建任何对象, 它会假设你不需要创建对象。有两种情况:可能在使用的scope不是"page",并在在前面已经把这个对象创建到这个scope中了,这时你就不需要再创建对象了。还有一种情况是要调用的方法是静态的,这时也不需要创建对象。DWR会在调用创建器之前先检查一下这个方法是不是静态的。 javascript属性 用于指定浏览器中这个被创造出来的对象的名字。你不能使用Javascript的关键字。 scope属性 可选,非常类似servlet规范中的scope。它允许你指定这个bean在什么生命范围。选项有"application", "session", "request" 和"page"。默认是page. param元素 被用来指定创造器的其他参数,每种构造器各有不同。在上面的dwr.xml中显示了spring的配制 方法,而在简单部署DWR中有new的配置方法!struts和jsf的配置如下: scripted的配置相对来说比较复杂,对于单例类很适用: import org.apache.commons.validator.EmailValidator; return EmailValidator.getInstance(); auth元素 允许你指定一个J2EE的角色作为将来的访问控制检查: include和exclude元素 允许创造器来限制类中方法的访问。一个创造器必须指定include列表或exclude列表之一。如果是include列表则暗示默认的访问策略是"拒绝";如果是exclude列表则暗示默认的访问策略是"允许"。例如只想访问addMessage()方法,你应该把如下内容添加到dwr.xml中。 如果有多个,就写多行。 3.Converters 类型转换器,转换器可以把POJO转换成Javascript的接合数组(类似与Java中的Map),或者反向转换。 JDK中的多数类型已经有转换器了,一般来说JavaBean的参数需要一个定义。 具体的结构如: 默认情况下,如下类型不需要定义就可以转换:boolean, byte, short, int, long, float, double, char, java.lang.Boolean, java.lang.Byte, java.lang.Short, java.lang.Integer, java.lang.Long, java.lang.Float, java.lang.Double, java.lang.Character, java.math.BigInteger, java.math.BigDecimal 和 java.lang.String.具体的你可以打开dwr.jar,在org.directwebremoting包中找到一个dwr.xml的文件,后半部分以convert为标签的都是。在这些基础转换器中,特别要提的是Date转换器,它负责在Javascript的Date类型与Java中的Date类型(java.util.Date, java.sql.Date, java.sql.Times or java.sql.Timestamp)之间进行转换。如果你有一个Javascript的字符串 (例如"01 Jan 2010") ,你想把它转换成Java的Date类型有两个办法:在javascript中用Date.parse()把它解析成Date类型,然后用DWR的DateConverter传递给服务器;或者把它作为字符串传递给Server,再用Java中的SimpleDateFormat(或者类似的)来解析。同样,如果你有个Java的Date类型并且希望在HTML使用它。你可以先用SimpleDateFormat把它转换成字符串再使用。也可以直接传Date给Javascript,然后用Javascript格式化。第一种方式简单一些,尽管浪费了你的转换器,而且这样做也会是浏览器上的显示逻辑受到限制。 match是用于告诉DWR你将需要把java中的哪些类转换成js。你也可以写成dwr.test.*,但我并不推荐大家这样使用。为什么呢?如果你像前面那样一个一个地注册对象,则就可以在页面使用这个的语句初始化一个对象: varuser = new User(); 如果你使用后一种方法去批量注册对象,那么你就不能这样初始化这个对象而只能这样手动注册: Varuser = {userid:"", username:null, ……}; Javascript用于说明你在页面中使用这个对象的名称,强烈建议大家使用首字母大写,在JS中容易看出这是一个与后台对应的对象。 Converter用于告诉DWR用什么DWR的类来执行转换,常用的转换器有bean、object、hibernate2、hibernate3等。DWR有哪些转换器可以在dwr.jar的dwr.xml中找到。用bean转换器对于转换一些简单的javabean(属性是基础对象)的比较适合,因为DWR会将该值对象的所有属性,及其这些属性的所有属性,所有属性的属性,都以穷举的方式取出来,如果是复杂对象会有效率上的问题以及其他意外的问题。如果使用了项目中使用了hibernate那么选择hibernate3比较好,因为它不但能够很好的解决bean转换中的问题,还解决了延迟查询的问题,而且hibernate2还有其它的问题,比如容易取到空Bean! 另外一个需要提的是,与creator一样,转换器也可以一样地设置exclude和include参数。但是与creator不同的是,是指转换对象的时候需要转换或不转换某些属性。这个参数对于hibernate的一对一关联非常重要。在hibernate中一对一关联是不做延迟查询的,假如有一个值对象Employee与值对象Address是一对一关联,那么Employee中有Address的属性,而Address中有Employee的属性。由于一对一关联不做延迟查询,当DWR在转换一个Employee是会装载它的属性Address,然后在装载Address的时候,又会去装载Address中的Employee属性。如此这样,就会形成一个死循环,最后以堆栈溢出告终。解决这个问题的办法就是禁掉Address中的Employee属性,避免产生死循环。具体写法如下: value部分是需要转换的属性,如果有多个则用逗号隔开就可以了! 4.(Signatures) Signatures:dwr.xml中的签名,DWR使用反射来找出在转换时应该用那种类型。有时类型信息并不明确,signatures段使DWR能确定集合中存放的数据类型。对于list,map等集合有效。 signatures段允许我们暗示DWR应该用什么类型去处理。格式对以了解JDK5的泛型的人来说很容易理解。
<!--DATA[ import java.util.List; import com.example.Check; Check.setLotteryResults(List<Integ-->nos); ]]> DWR中又一个解析器专门来做这件事,所以即便你的环境时JDK1.3 DWR也能正常工作。 解析规则基本上会和你预想规则的一样(有两个例外),所以java.lang下面的类型会被默认import。 第一个是DWR1.0中解析器的bug,某些环境下不能 (本内容来自唯才教育网http://www.hn1c.com 原文地址:http://www.hn1c.com/diannao/dn53397/)
发表评论
-
js原型
2012-07-25 23:00 759原型是个很微妙的东西,很多人不是很理解,理解了原型对于研 ... -
js 格式化时间日期函数
2012-02-16 18:15 1086[代码] [JavaScript]代码 ... -
javascript设计模式
2011-12-19 08:26 7682011-08-31 23:55 by 聂微东, 11285 ... -
offsetLeft,Left,clientLeft的区别
2011-12-14 11:53 778假设 obj 为某个 HTML ... -
js去除两个数组中对象的某个属性相同的元素然后合并
2011-12-11 21:42 3998var dataArray1 = new Array();va ... -
javascript 命名空间
2011-11-30 19:18 1772在我们创建一个JavaScript库时,命名空间就显 ... -
读取js压缩为gzjs格式文件
2011-11-30 09:38 913最近做的Ext项目Ext的插件都比较大,对于网页的浏览 ... -
DOM事件传播
2011-11-25 15:53 760贴代码 test1.html <div i ... -
20 种提升网页速度的技巧 .
2011-11-07 14:14 855引言 不是所有人都能够使用高速 Inte ... -
动态加载js,css
2011-11-03 15:10 977/*Javascript 动态加载*/var JsLoad ... -
动态加载js的四种方法
2011-11-03 15:08 8751、直接document.write<s ... -
ext 中的各个style
2011-10-31 14:47 1136baseCls : 所写的css将会应用到自己的组件上 ... -
javascript prototype
2011-10-25 13:19 885---------------------- android培 ... -
JavaScript Prototype 详解
2011-10-24 17:08 888---------------------- andr ... -
JS通用表单验证函数,基于javascript正则表达式
2011-10-17 13:02 883表单的验证在实际的开发当中是件很烦琐又无趣的事情今天在做一 ... -
Javascript正则表达式详解
2011-10-17 13:00 828js正则表达式是很多js开发人员比较头疼的事情,也很多人不 ... -
精通 JS正则表达式
2011-10-17 12:59 679正则表达式可以: •测试字符串的某个模式。例如,可以对一个输入 ... -
swfupload浅析
2010-12-24 18:12 1192一、简介和示例 SWFUpload is a small J ... -
带复选框(checkbox)的树
2010-12-14 10:13 1282带复选框(checkbox)的树 <!-- start ... -
NodeJS探索
2010-11-07 17:05 1353一、什么是NodeJS?第一眼看到这个词,估计你和我一样,以为 ...
相关推荐
- **dwr.properties**:配置DWR的行为,如错误处理、缓存策略等。 - **XML配置**:可使用XML文件定义允许客户端调用的Java方法。 3. **主要组件**: - **Engine**:DWR引擎是核心,负责处理Ajax请求和响应。 - ...
在这个版本中,DWR提供了一套全面的API,包括自动转换Java对象到JSON格式,以及处理安全性和并发性问题。此外,DWR 2.0支持自动刷新,这意味着当服务器端的Java类或方法发生变化时,无需重新加载页面,客户端的...
当服务器端发生错误时,DWR可以将异常信息转换为JavaScript错误对象,使得客户端能够捕获并处理这些异常。这对于提供良好的用户体验至关重要。 综上所述,"DWRSpring实例"是一个很好的学习资源,可以帮助我们理解...
- 在JavaScript中,使用`DWRUtil`或`DWREngine`对象来调用Java方法,获取数据后更新DOM以改变下拉框的选项。 5. **事件处理与异步通信**: - 使用`onChange`事件监听下拉框的改变,当用户选择一个选项时,触发DWR...
2. **DWRUtil类**:DWRUtil是DWR提供的一系列实用工具函数的集合,包括但不限于数据转换(如JSON到Java对象的转换)、错误处理、DOM操作等,为开发者提供便利。 3. **Ajax支持**:DWR利用Ajax技术实现了页面的局部...
例如,`RemoteProxy`可以创建一个与特定Java对象关联的JavaScript对象,然后通过这个对象调用服务器端的方法。 4. **异步调用**:DWR的主要优势在于其异步调用机制。JavaScript调用Java方法后,不会阻塞页面,而是...
3. **映射器(Mapper)**:映射器负责将JavaScript对象和服务器端的Java对象关联起来,确保正确的方法被调用。 4. **安全(Security)**:DWR提供了一套机制来防止跨站脚本攻击(XSS)和其他类型的攻击,确保只有...
DWR处理了诸如JSON或XML序列化、跨域安全、错误处理和缓存等复杂问题,让开发者可以专注于业务逻辑。 集成DWR和Spring的关键在于配置。在Spring配置文件中,我们需要声明DWR的`DWRServlet`,并将其注册为一个...
标题 "dwr推模式" 涉及...- `dwr.xml`:DWR的配置文件,定义了允许的Java对象、方法以及推模式的设置。 通过这些文件的配合,一个基于DWR推模式的Web应用可以实现实时的数据更新,为用户提供更流畅、高效的交互体验。
比如,`HostGroup`和`RealHost`存在一对多关系,如果不做特殊处理,DWR在序列化`HostGroup`时会连同所有关联的`RealHost`一起传输到浏览器,这可能导致性能问题。为了防止这种情况,我们需要在DWR的转换配置中排除...
DWR调用与界面更新紧密关联,确保用户交互的实时性。 6. **错误处理**:DWR提供了异常处理机制,当服务器端方法抛出异常时,可以在客户端捕获并处理,提供友好的用户提示。 7. **性能优化**:为了提高性能和用户...
DWR与Ajax(Asynchronous JavaScript and XML)技术紧密关联,后者是实现网页无刷新更新的核心技术。 在学习DWR框架时,首先要理解其基本概念和工作原理。DWR通过在浏览器端创建JavaScript对象来调用服务器端的Java...
2. Spring 作为整体的容器,管理所有组件的生命周期,包括Struts2的Action、Hibernate的数据访问对象(DAO)以及DWR的远程接口。Spring的DI特性使得各组件之间的依赖关系得以解耦。 3. Hibernate 作为持久层框架,...
- 配置Spring或Struts的Action配置文件,以便将DWR与Struts Action关联起来。 2. **Struts的Action类**: - 创建一个Struts Action类,该类通常包含了业务逻辑,需要暴露给DWR调用的方法。 3. **DWR的JavaScript...
配置文件中使用BeanConverter,然后直接将JavaScript对象传递给`save`方法,DWR会自动处理对象到Bean的转换。 ### 3. 删除对象 删除操作也分为两种方式: #### 第一种方式: 1. JSP页面中有一个隐藏字段`userid`...
**总结:** DWR通过提供简单的API和自动化处理,使得开发人员能够轻松地实现AJAX功能,如级联下拉菜单,而无需深入了解底层的XMLHttpRequest对象。通过动态调用服务器端方法,DWR大大简化了Web应用的开发,提高了...
在本案例中,"三级联动代码 DWR"指的是使用DWR来实现一个具有三级关联的下拉菜单,当用户在一级菜单中选择一项时,二级菜单会自动更新,然后根据二级菜单的选择,三级菜单也会动态改变。这种方式可以提升用户体验,...
3. **两列表关联**:此示例展示了DWR如何处理两个或多个表单元素之间的联动。比如,当用户在一个下拉框中选择一项时,另一个下拉框会根据选择的内容动态更新其选项。这涉及到DWR的事件监听和异步数据刷新功能。 4. ...
Servlet映射到`/dwr/*`,这意味着所有以`/dwr/`开头的URL都将由DWR处理。`web.xml`的配置是这样的: ```xml ... <servlet-name>dwr-invoker <servlet-class>org.directwebremoting.servlet.DwrServlet ...