- 浏览: 191582 次
- 性别:
- 来自: 深圳
最新评论
-
shis_y:
那是你的localhost或者web服务器的80端口被占用或者 ...
通过虚拟地址解决fckeditor错误的加载/fckeditor/fckstyles.xml -
forcer521:
com.gemt.dataswap.util.Constant ...
使用DES算法进行加密和解密 -
ngn9999:
dTree确实不错,这是我的使用经验: http://www. ...
javascript树型菜单(Dtree和Xtree) -
yueliangwolf:
这个dhtmlxtree.js里面有enableSmartXM ...
使用xml或者json方式生成dhtmlxtree -
yanMouse:
谢谢,能否有个联系方式,我现在也在看这方面的东西
dhtmlxtree的一个实用demo
xml 代码
- AJAX 之DWR篇
- DWR为JAVA开发AJAX程序带来了很大的便截, 当年Webwork 2.0就是整合它与DOJO实现了AJAX功能的.
- 现在它支持同webwork, struts, spring, hibernate, jsf, beehive等整合
- 1. DWR之util.js, engine.js, auth.js, dwr.xml, web.xml
- 这几个文件是DWR的核心配置文件
- 1) web.xml(加载DwrServlet, 配置对DWR的AJAX请求的处理), 在开发模式可以打开调试信息,只要把
- debug设置成true就可以了, 对于其它的配置参数的说明可以参考(http://getahead.org/dwr/server/servlet)
- <servlet>
- <servlet-name>dwr-invokerservlet-name>
- <servlet-class>org.directwebremoting.servlet.DwrServletservlet-class>
- <init-param>
- <param-name>debugparam-name>
- <param-value>trueparam-value>
- init-param>
- servlet>
- <servlet-mapping>
- <servlet-name>dwr-invokerservlet-name>
- <url-pattern>/dwr/*url-pattern>
- servlet-mapping>
- (1) 日志级别的设定
- <init-param>
- <param-name>logLevelparam-name>
- <param-value>DEBUGparam-value>
- init-param>
- (2) 有时侯为了系统的安全, 也可以针对不同的用户类型, 分别调用不同的dwr.xml
- <servlet>
- <servlet-name>dwr-user-invokerservlet-name>
- <servlet-class>uk.ltd.getahead.dwr.DWRServletservlet-class>
- <init-param>
- <param-name>config-userparam-name>
- <param-value>WEB-INF/dwr-user.xmlparam-value>
- init-param>
- servlet>
- <servlet>
- <servlet-name>dwr-admin-invokerservlet-name>
- <servlet-class>uk.ltd.getahead.dwr.DWRServletservlet-class>
- <init-param>
- <param-name>config-adminparam-name>
- <param-value>WEB-INF/dwr-admin.xmlparam-value>
- init-param>
- servlet>
- <servlet-mapping>
- <servlet-name>dwr-admin-invokerservlet-name>
- <url-pattern>/dwradmin/*url-pattern>
- servlet-mapping>
- <servlet-mapping>
- <servlet-name>dwr-user-invokerservlet-name>
- <url-pattern>/dwruser/*url-pattern>
- servlet-mapping>
- <security-constraint>
- <display-name>dwr-admindisplay-name>
- <web-resource-collection>
- <web-resource-name>dwr-admin-collectionweb-resource-name>
- <url-pattern>/dwradmin/*url-pattern>
- web-resource-collection>
- <auth-constraint>
- <role-name>adminrole-name>
- auth-constraint>
- security-constraint>
- <security-constraint>
- <display-name>dwr-userdisplay-name>
- <web-resource-collection>
- <web-resource-name>dwr-user-collectionweb-resource-name>
- <url-pattern>/dwruser/*url-pattern>
- web-resource-collection>
- <auth-constraint>
- <role-name>userrole-name>
- auth-constraint>
- security-constraint>
- (3) 使用Plug-ins
- <servlet>
- <servlet-name>dwr-invokerservlet-name>
- <servlet-class>org.directwebremoting.servlet.DwrServletservlet-class>
- <init-param>
- <param-name>org.directwebremoting.extend.ServerLoadMonitorparam-name>
- <param-value>com.example.MyCustomServerLoadMonitorparam-value>
- init-param>
- servlet>
- 其它一些可以修改的配置
- Plug-in Points for DWR 2.0
- * org.directwebremoting.Container
- * org.directwebremoting.WebContextFactory.WebContextBuilder
- * org.directwebremoting.ServerContextFactory.ServerContextBuilder
- * org.directwebremoting.servlet.UrlProcessor
- * org.directwebremoting.extend.AccessControl
- * org.directwebremoting.extend.AjaxFilterManager
- * org.directwebremoting.extend.ConverterManager
- * org.directwebremoting.extend.CreatorManager
- * org.directwebremoting.extend.DebugPageGenerator
- * org.directwebremoting.extend.HtmlCallMarshaller
- * org.directwebremoting.extend.HtmlPollHandler
- * org.directwebremoting.extend.PageNormalizer
- * org.directwebremoting.extend.PlainCallMarshaller
- * org.directwebremoting.extend.PlainPollHandler
- * org.directwebremoting.extend.Remoter
- * org.directwebremoting.extend.ScriptSessionManager
- * org.directwebremoting.extend.ServerLoadMonitor
- 2) dwr.xml DWR配置文件的格式如下
- <!---->
- "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"
- "http://www.getahead.ltd.uk/dwr/dwr10.dtd">
- <dwr>
- <!---->
- <init>
- <creator id="..." class="..."/>
- <converter id="..." class="..."/>
- init>
- <!---->
- <allow>
- <create creator="..." javascript="..."/>
- <convert converter="..." match="..."/>
- allow>
- <!---->
- <signatures>
- ...
- signatures>
- dwr>
- (1) convert 类型转换
- 以下的类型不需要转换
- 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 and java.lang.String
- Javascript的Date类型对应于JAVA的java.util.Date, java.sql.Date, java.sql.Times 或者 java.sql.Timestamp. 作为最基
- 本的converters, DateConverter是默认使用的.
- 对于字符串"01 Jan 2010", 想在JAVA端得到Date类型, 有两种处理方式, 一种是在Javascript端调用Date.parse(), 而后DWR使用
- DateConverter进行处理, 另外一种是在JAVA端调用SimpleDateFormat等进行转换
- Bean 和 Object Converters
- 转换指定的类
- <convert converter="bean" match="your.full.package.BeanName"/>
- 转换指定的包或者子包中的所有类
- <convert converter="bean" match="your.full.package.*"/>
- 转换所有的JavaBean
- <convert converter="bean" match="*"/>
- 例子
- JavaBean代码:
- public class Remoted {
- public void setPerson(Person p) {
- // ...
- }
- }
- public class Person {
- public void setName(String name) { ... }
- public void setAge(int age) { ... }
- // ...
- }
- 远程的Javascript代码:
- var p = { name:"Fred", age:21 };
- Remoted.setPerson(p);
- 限制一些属性的Conversion
- <convert converter="bean" match="com.example.Fred">
- <param name="exclude" value="property1, property2"/>
- convert>
- <convert converter="bean" match="com.example.Fred">
- <param name="include" value="property1, property2"/>
- convert>
- Collection Converters(对于集合的Conversion, 默认提供了一种Converter)
- <convert converter="collection" match="java.util.Collection"/>
- <convert converter="map" match="java.util.Map"/>
- DOM Objects(DWR能自动转化来自DOM, DOM4J, JDOM和XOM的DOM树)
- (2) create (创建供DWR调用的对象)
- <allow>
- <create creator="..." javascript="..." scope="...">
- <param name="..." value="..."/>
- <auth method="..." role="..."/>
- <exclude method="..."/>
- <include method="..."/>
- create>
- ...
- allow>
- 能使用的creator
- * new: 使用Java 'new' 操作符.
- * none: 不创建对象
- * scripted: 使用象BeanShell 或者 Groovy 通过 BSF创建.
- * spring: 通过spring架够去访问bean.
- * jsf: 使用来自JSF的对象
- * struts: 使用struts的FormBeans
- * pageflow: 访问Beehive 或者 Weblogic的页面流. (v1.1+)
- * ejb3: An experimental Creator to give access to EJB3 session beans.
- This code should not be seen as production quality until it has undergone more testing, and has an official maintainer. (v2.0+)
- javascript 属性(定义在浏览器中能使用的对象的名字, 不过应该避免使用javascript的保留字)
- scope属性(类型于JSP,可以使用 application, session, request和 page)
- (3) Signatures in dwr.xml
- 使用Signatures解决了集合中元素类型转化的问题
- <signatures>
- <!---->
- import java.util.List;
- Check.setLotteryResults(List<integer></integer>);
- ]]>
- signatures>
- <signatures>
- <!---->
- import java.util.List;
- import java.util.Map ;
- Check.setConditions(Map);
- ]]>
- signatures>
- 3) 应用举例
- (1) public class Remote {
- public String getData(int index) { ... }
- }
- <script type="text/javascript"
- src="[WEBAPP]/dwr/interface/Remote.js"> script>
- <script type="text/javascript"
- src="[WEBAPP]/dwr/engine.js"> script>
- ...
- function handleGetData(str) {
- alert(str);
- }
- Remote.getData(42, handleGetData);
- 包含回调, 延时, 错误处理
- Remote.getData(42, {
- callback:function(str) { alert(str); },
- timeout:5000,
- errorHandler:function(message) { alert("Oops: " + message); }
- });
- (2) 使用AJAX实现数据的修改
- public class Remote {
- public void setPerson(Person p) {
- this.person = p;
- }
- }
- public Person {
- private String name;
- private int age;
- private Date[] appointments;
- // getters and setters ...
- }
- var p = {
- name:"Fred Bloggs",
- age:42,
- appointments:[ new Date(), new Date("1 Jan 2008") ]
- };
- Remote.setPerson(p);
- 4) engine.js(DWR框架的核心, 不管在哪里使用DWR都需要这个文件, 它能动态产生那些接口的JS)
- <script type='text/javascript'
- src='/[YOUR-WEB-APP]/dwr/engine.js'>
- script>
- DWREngine.setX会对所有的调用者生效
- DWREngine.setTimeout(1000);
- 单个方法的调用
- Remote.singleMethod(params, {
- callback:function(data) { ... },
- timeout:2000
- });
- 多个方法的披处理
- DWREngine.beginBatch();
- Remote.methodInBatch1(params, callback1);
- Remote.methodInBatch2(params, callback2);
- DWREngine.endBatch({
- timeout:3000
- });
- 5) util.js (util.js包含一些常用的涵数, 帮助你去更新页面的内容)
- * $() $ = document.getElementById
- * addOptions and removeAllOptions
- var sel = DWRUtil.getValue(id);
- DWRUtil.removeAllOptions(id);
- DWRUtil.addOptions(id, ...);
- DWRUtil.setValue(id, sel);
- DWRUtil.addOptions(id, ["Please select ..."]);
- <p><code>DWRUtil.addOptions( "demo2",
- <textarea id="oadata" rows="6" cols="45" style="vertical-align:top;" >[
- { name:'Africa', population:'800m' },
- { name:'America', population:'900m' },
- { name:'Asia', population:'3000m' },
- { name:'Australasia', population:'31m' },
- { name:'Europe', population:'700m' }
- ]textarea>,
- <input id="oavalueprop" value="name"/>
- )code>
- <input type="button" onclick="DWRUtil.addOptions('demo2', eval($('oadata').value), $('oavalueprop').value);" value="Show Me"/>
- p>
- <p><code>DWRUtil.addOptions( "demo3",
- <textarea id="aadata" rows="6" cols="35" style="vertical-align:top;" >[
- { name:'Africa', id:'AF' },
- { name:'America', id:'AM' },
- { name:'Asia', id:'AS' },
- { name:'Australasia', id:'AU' },
- { name:'Europe', id:'EU' }
- ]textarea>,
- <input id="aavalueprop" value="id" size="4"/>,
- <input id="aatextprop" value="name" size="10"/>
- )code>
- <input type="button" onclick="DWRUtil.addOptions('demo3', eval($('aadata').value), $('aavalueprop').value, $('aatextprop').value);" value="Show Me"/>
- p>
* addRows and removeAllRows
list with <code>id="demo3"</code>: <select id="demo3"> </select> <
list with <code>id="demo3"</code>: <select id="demo3"> </select> <
发表评论
-
kdb+/q
2008-11-28 20:13 1907因为一个项目接触了kdb+/q, kdb+/q的执行速度应该 ... -
seam随笔
2008-09-28 20:33 1208前段时间,因为客户的一个项目接触了seam,客户那边在 ... -
richfaces换肤
2008-08-27 23:18 0http://leonardinius.blogspot.co ... -
jfree chart...
2008-08-17 11:38 0see attachment. -
crystal report
2008-08-04 21:57 0crystal report http://oceang-y. ... -
js code example
2008-07-01 16:25 0<html> <body> <s ... -
dhtmlgoodies网站上的一些js,也许在工作中用得到
2008-06-23 16:28 1536到http://www.dhtmlgoodies.com ... -
Hibernate的一个例子
2008-05-31 23:32 1092通过hibernate tools的反向工程从数据库产生ent ... -
使用xml或者json方式生成dhtmlxtree
2008-05-14 18:01 68171. dao private static Paramete ... -
在cxf基础上整的一个框架
2008-04-24 08:48 1101使用cxf作为webservice的服务器,以spring b ... -
S60签名
2008-04-16 17:14 1516前段时间写了一个程序,放到S60第三版的手机系统上面老是报权限 ... -
socket消息超时重发的设想
2008-04-08 17:00 4061我们经常遇到的一个问题就是:发送一条消息,若在T秒内没有 ... -
io,nio和操作系统命令性能比较
2008-03-31 20:50 2267package org.clarance; import j ... -
要开始做一个网络的项目了
2008-03-27 22:38 1318一个在线环境监测的项目, 监控中心用java编写,接受现 ... -
使用jQuery解决portal登陆慢的问题
2007-12-19 16:58 2270因为portal中的好几块地方(portlet)取数据比较慢, ... -
使用javascript遍历XML文件并显示
2007-12-10 17:11 6682以下代码在IE和Firefox上测试通过: <html& ... -
JSON技术实战
2007-12-07 09:23 11051JSON作为一种信息的载体 ... -
使用HttpClient对web应用进行测试
2007-11-29 16:19 2959在几天程序突然报出了数据库连接被管理员销毁的情况! 一时之间也 ... -
判断日期是否有效的正则表达式
2007-09-10 17:59 1244function isValidDate(dateStr, f ... -
取oracle的error code
2007-08-30 15:39 2830有时候需要知道oracle的error code的具体含义, ...
相关推荐
<script src='dwr/interface/testClass.js'></script> <script src='dwr/engine.js'></script> <script src='dwr/util.js'></script> function callTestMethod1() { testClass.testMethod1(); } ``` - `dwr/...
<script type='text/javascript' src='/DWRTest/dwr/interface/JDate.js'></script> <script type='text/javascript' src='/DWRTest/dwr/engine.js'></script> <script type='text/javascript' src='/DWRTest/dwr/...
<script type="text/javascript" src="/dwrtest/dwr/interface/Hello.js"></script> <script type="text/javascript"> function getMessage(name) { var nameValue = document.getElementById(name).value; ...
本篇文章将从安装DWR、配置相关文件到创建配置文件等方面,详细介绍如何使用DWR进行Ajax开发。 #### 二、安装DWR JAR文件 首先,你需要下载DWR的`dwr.jar`文件,并将其放置于web应用的`WEB-INF/lib`目录下。通常,...
<artifactId>dwr</artifactId> <version>3.x.x</version> </dependency> <!-- 其他依赖,如json-lib等 --> </dependencies> ``` 确保版本号与提供的文件对应。 2. **创建DWR配置**:在你的项目中创建一个名为`...
<servlet-name>dwr</servlet-name> <servlet-class>org.directwebremoting.spring.DwrSpringServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>true</param-value> </init-...
<url-pattern>/dwr/*</url-pattern> </servlet-mapping> ``` 为了便于调试,可以添加`debug`初始化参数,设置为`true`,以便在`http://localhost:port/app/dwr`访问DWR自动生成的测试页面,检查和测试Java方法。但...
<script type="text/javascript" src="<%=basepath%>dwr/interface/MessagePush.js"></script> ``` 其中,`engine.js`和`util.js`是DWR提供的基础库文件,而`MessagePush.js`则是在`dwr.xml`中定义的接口文件。 ##...
<servlet-name>DWR</servlet-name> <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>true</param-value> </init-param>...
<url-pattern>/dwr/*</url-pattern> </servlet-mapping> ``` 这样,所有以`/dwr/`开头的URL请求都会被DWRServlet处理。 #### 1.2 调试模式 如果想要启用DWR的调试模式,可以在Servlet配置中添加`debug`参数: ```...
<script src="/dwr/interface/MyService.js"></script> <script src="/dwr/engine.js"></script> <script src="/dwr/util.js"></script> </head> <body> <button onclick="callServer()">调用服务器</button> ...
<servlet-name>dwr_servlet</servlet-name> <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>true</param-value> </...
<script type="text/javascript" src="/dwr/interface/TestService.js"></script> <script type="text/javascript"> TestService.sayHello(function(response) { alert('服务器返回:' + response); }); </script...
本篇笔记主要介绍了一个具体的AJAX配置示例,它涉及了Spring框架、Direct Web Remoting (DWR) 和Hibernate等技术的应用。下面将详细解析这些配置代码的关键部分及其作用。 #### 二、web.xml配置分析 **1. Spring上...
<url-pattern>/dwr/*</url-pattern> </servlet-mapping> ``` 3. **创建Java接口**:定义一个Java接口,该接口的方法将被暴露给JavaScript调用。例如: ```java public interface MyService { List<User> ...
<script type="text/javascript" src="/dwr/interface/UserService.js"></script> <script type="text/javascript" src="/dwr/engine.js"></script> <script type="text/javascript"> window.onload = function...
本篇文章将深入探讨如何使用DWR组件来实现Ajax效果,并提供一个名为AjaxDemo的示例项目。 **1. DWR简介** DWR是一款开源的Java库,它允许JavaScript代码直接调用Java方法,就像它们是本地函数一样。DWR自动处理了...
<script src="/dwr/interface/HelloWorld.js"></script> <script src="/dwr/engine.js"></script> <script src="/dwr/util.js"></script> <script> function displayMessage() { HelloWorld.sayHello(function...
<servlet-name>dwr</servlet-name> <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>dwr</servlet-name> <url-pattern>/dwr/*</url-...
DWR (Direct Web Remoting) 是一个开源的Java库,它允许JavaScript在浏览器端与服务器端的Java对象进行交互,从而实现AJAX(Asynchronous JavaScript and XML)应用。在DWR 3版本中,它提供了丰富的API和工具,使得...