??xml version="1.0" encoding="utf-8" standalone="yes"?>精品丝袜一区二区三区,亚洲字幕久久,18性欧美xxxⅹ性满足http://www.aygfsteel.com/liubijin/category/44919.htmlzh-cnTue, 04 May 2010 07:56:02 GMTTue, 04 May 2010 07:56:02 GMT60DWR各种 调用Ҏ http://www.aygfsteel.com/liubijin/archive/2010/05/04/320026.html無所?/dc:creator>無所?/author>Tue, 04 May 2010 04:12:00 GMThttp://www.aygfsteel.com/liubijin/archive/2010/05/04/320026.htmlhttp://www.aygfsteel.com/liubijin/comments/320026.htmlhttp://www.aygfsteel.com/liubijin/archive/2010/05/04/320026.html#Feedback0http://www.aygfsteel.com/liubijin/comments/commentRss/320026.htmlhttp://www.aygfsteel.com/liubijin/services/trackbacks/320026.html1、调用没有返回值和参数的JAVAҎ

1.1、dwr.xml的配|?/font>
<dwr>
<allow>
<create creator="new" javascript="testClass" >
<param name="class" value="/com.dwr.TestClass" />
<include method="testMethod1"/>
</create>
</allow>
</dwr>
<allow>标签中包括可以暴露给javascript讉K的东ѝ?br /> <create>标签中指定javascript中可以访问的javac,q定义DWR应当如何获得要进行远E的cȝ实例。creator= "new"属性指定javacd例的生成方式Qnew意味着DWR应当调用cȝ默认构造函数来获得实例Q其他的q有spring方式Q通过与IOC容器 Springq行集成来获得实例等{。javascript=" testClass "属性指定javascript代码讉K对象时用的名称?br /> <param>标签指定要公开ljavascript的javacd?br /> <include>标签指定要公开ljavascript的方法。不指定的话公开所有方法?br /> <exclude>标签指定要防止被讉K的方法?br /> 1.2、javascript中调?/font>
首先Q引入javascript脚本
<script src='dwr/interface/ testClass.js'></script>
<script src="/dwr/engine.js"></script>
<script src="/dwr/util.js"></script>
其中TestClass.js是dwrҎ配置文g自动生成的,engine.js和util.js是dwr自带的脚本文件?br /> 其次Q编写调用javaҎ的javascript函数
Function callTestMethod1(){
       testClass.testMethod1();
}
2、调用有单返回值的javaҎ

2.1、dwr.xml的配|?/font>
配置?.1
<dwr>
<allow>
<create creator="new" javascript="testClass" >
<param name="class" value="/com.dwr.TestClass" />
<include method="testMethod2"/>
</create>
</allow>
</dwr>
2.2、javascript中调?br /> 首先Q引入javascript脚本
其次Q编写调用javaҎ的javascript函数和接收返回值的回调函数
Function callTestMethod2(){
       testClass.testMethod2(callBackFortestMethod2);
}
Function callBackFortestMethod2(data){
      //其中date接收Ҏ的返回?br />       //可以在这里对q回D行处理和昄{等
alert("the return value is " + data);
}
其中callBackFortestMethod2是接收返回值的回调函数

3、调用有单参数的javaҎ

3.1、dwr.xml的配|?/font>
配置?.1
<dwr>
<allow>
<create creator="new" javascript="testClass" >
<param name="class" value="/com.dwr.TestClass" />
<include method="testMethod3"/>
</create>
</allow>
</dwr>
3.2、javascript中调?/font>
首先Q引入javascript脚本
其次Q编写调用javaҎ的javascript函数
Function callTestMethod3(){
                  //定义要传到javaҎ中的参数
       var data;
       //构造参?br />        data = “test String”;
       testClass.testMethod3(data);
}

4、调用返回JavaBean的javaҎ
4.1、dwr.xml的配|?/font>
<dwr>
<allow>
<create creator="new" javascript="testClass" >
<param name="class" value="/com.dwr.TestClass" />
<include method="testMethod4"/>
</create>
<convert converter="bean" match=""com.dwr.TestBean">
                   <param name="include" value="username,password" />
</convert>
</allow>
</dwr>
<creator>标签负责公开用于Webq程的类和类的方法,<convertor>标签则负责这些方法的参数和返回类型?convert元素的作用是告诉DWR在服务器端Java 对象表示和序列化的JavaScript之间如何转换数据cd。DWR自动地在Java和JavaScript表示之间调整单数据类型。这些类型包?Java原生cd和它们各自的装c表C,q有String、Date、数l和集合cd。DWR也能把JavaBean转换成JavaScript 表示Q但是出于安全性的原因Q要求显式的配置Q?lt;convertor>标签是完成此功能的。converter="bean"属性指定{换的方式采用JavaBean命名规范Qmatch=""com.dwr.TestBean"属性指定要转换的javabean名称Q?lt; param>标签指定要{换的JavaBean属性?br /> 4.2、javascript中调?/font>
首先Q引入javascript脚本
其次Q编写调用javaҎ的javascript函数和接收返回值的回调函数
Function callTestMethod4(){
       testClass.testMethod4(callBackFortestMethod4);
}
Function callBackFortestMethod4(data){
      //其中date接收Ҏ的返回?br /> //对于JavaBeanq回|有两U方式处?br />               //不知道属性名U时Q用如下方?br />             for(var property in data){
               alert("property:"+property);
               alert(property+":"+data[property]);
            }
//知道属性名U时Q用如下方?br />             alert(data.username);
            alert(data.password);
}
其中callBackFortestMethod4是接收返回值的回调函数

5、调用有JavaBean参数的javaҎ
5.1、dwr.xml的配|?br /> 配置?.1
<dwr>
<allow>
<create creator="new" javascript="testClass" >
<param name="class" value="/com.dwr.TestClass" />
<include method="testMethod5"/>
</create>
<convert converter="bean" match="com.dwr.TestBean">
                   <param name="include" value="username,password" />
</convert>
</allow>
</dwr>
5.2、javascript中调?/font>
首先Q引入javascript脚本
其次Q编写调用javaҎ的javascript函数
Function callTestMethod5(){
                  //定义要传到javaҎ中的参数
       var data;
       //构造参敎ͼdate实际上是一个object
       data = { username:"user", password:"password" }
       testClass.testMethod5(data);
}

6、调用返回List、Set或者Map的javaҎ
6.1、dwr.xml的配|?/font>
配置?.1
<dwr>
<allow>
<create creator="new" javascript="testClass" >
<param name="class" value="/com.dwr.TestClass" />
<include method="testMethod6"/>
</create>
<convert converter="bean" match="com.dwr.TestBean">
<param name="include" value="username,password" />
</convert>
</allow>
</dwr>
注意Q如果List、Set或者Map中的元素均ؓ单类型(包括其封装类Q或String、Date、数l和集合cdQ则不需?lt;convert>标签?br /> 6.2、javascript中调?以返回ListZQList的元素ؓTestBean)
首先Q引入javascript脚本
其次Q编写调用javaҎ的javascript函数和接收返回值的回调函数
Function callTestMethod6(){
       testClass.testMethod6(callBackFortestMethod6);
}
Function callBackFortestMethod6(data){
      //其中date接收Ҏ的返回?br /> //对于JavaBeanq回|有两U方式处?br />               //不知道属性名U时Q用如下方?br />             for(var i=0;i<data.length;i++){
for(var property in data){
                   alert("property:"+property);
                   alert(property+":"+data[property]);
                }
}
//知道属性名U时Q用如下方?br /> for(var i=0;i<data.length;i++){
                alert(data.username);
                alert(data.password);
}
}

7、调用有List、Set或者Map参数的javaҎ

7.1、dwr.xml的配|?/font>
<dwr>
<allow>
<create creator="new" javascript="testClass" >
<param name="class" value="/com.dwr.TestClass" />
<include method="testMethod7"/>
</create>
<convert converter="bean" match="com.dwr.TestBean">
<param name="include" value="username,password" />
</convert>
</allow>
<signatures>
<![CDATA[
import java.util.List;
import com.dwr.TestClass;
import com.dwr.TestBean;
TestClass.testMethod7(List<TestBean>);
]]>
</signatures>
</dwr>
<signatures>标签是用来声明javaҎ中List、Set或者Map参数所包含的确切类Q以便java代码作出判断?br /> 7.2、javascript中调?以返回ListZQList的元素ؓTestBean)
首先Q引入javascript脚本
其次Q编写调用javaҎ的javascript函数
Function callTestMethod7(){
//定义要传到javaҎ中的参数
       var data;
       //构造参敎ͼdate实际上是一个object数组Q即数组的每个元素均为object
data = [
                       {
                          username:"user1",
                          password:"password2"
                       },
                       {
                          username:"user2",
                          password:" password2"
                       }
                   ];
       testClass.testMethod7(data);
}
注意Q?br /> 1、对于第6U情况,如果javaҎ的返回gؓMapQ则在接收该q回值的javascript回调函数中如下处理:
function callBackFortestMethod(data){
            //其中date接收Ҏ的返回?br />             for(var property in data){
                   var bean = data[property];
                   alert(bean.username);
                   alert(bean.password);
               }
}
2、对于第7U情况,如果java的方法的参数为MapQ假讑օkey为StringQvalue为TestBeanQ,则在调用该方法的javascript函数中用如下Ҏ构造要传递的参数Q?br /> function callTestMethod (){
               //定义要传到javaҎ中的参数
               var data;
               //构造参敎ͼdate实际上是一个objectQ其属性名为Map的keyQ属性gؓMap的value
               data = {
                          "key1":{
                              username:"user1",
                             password:"password2"
                          },
                          "key2":{
                             username:"user2",
                             password:" password2"
                          }
                      };
               testClass.testMethod(data);
}
q且在dwr.xml中增加如下的配置D?br /> <signatures>
<![CDATA[
import java.util.List;
import com.dwr.TestClass;
import com.dwr.TestBean;
TestClass.testMethod7(Map<String,TestBean>);
]]>
</signatures>
3、由以上可以发现Q对于javaҎ的返回gؓList(Set)的情况,DWR其转化为Object数组Q传递个javascriptQ对于javaҎ的返回gؓMap 的情况,DWR其转化Z个ObjectQ其中Object的属性ؓ原Map的key|属性gؓ原Map相应的value倹{?/font>
4、如果javaҎ的参CؓList(Set)和Map的情况,javascript中也要根?U所_构造相应的javascript数据来传递到java中?
====================================================================

Scripting Introduction

DWRҎdwr.xml生成和Java代码cM的Javascript代码?/div>
相对而言Java同步调用Q创ZJava代码匚w的Ajaxq程调用接口的最大挑战来至与实现Ajax的异步调用特性?/div>
DWR通过引入回调函数来解册个问题,当结果被q回ӞDWR会调用这个函数?/div>
有两U推荐的方式来用DWR实现q程Ҏ调用。可以通过把回调函数放在参数列表里Q也可以把回调函数放到元数据对象里?/div>
当然也可以把回调函数做ؓW一个参敎ͼ但是不徏议用这U方法。因U方法在处理自动处理http对象?查看"Alternative Method")上会有问题。这个方法主要是为向下兼容而存在的?/div>

单的回调函数

假设你有一个这LJavaҎQ?/div>
public class Remote {    public String getData(int index) { ... }}
我们可以在Javascript中这样用:
<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);
42是JavaҎgetData()的一个参数?/div>
此外你也可以使用q种减羃格式Q?/div>
Remote.getData(42, function(str) { alert(str); });

调用元数据对?Meta-Data)

另外一U语法时使用"调用元数据对?来指定回调函数和其他的选项。上面的例子可以写成q样Q?/div>
Remote.getData(42, {  callback:function(str) { alert(str); }});
q种Ҏ有很多优点:易于阅读Q更重要的指定额外的调用选项?/div>

时和错误处?/font>

在回调函数的元数据中你可以指定超时和错误的处理方式。例如:
Remote.getData(42, {  callback:function(str) { alert(str); },  timeout:5000,  errorHandler:function(message) { alert("Oops: " + message); }});

查找回调函数

有些情况下我们很隑֌分各U回调选项(CQJavascript是不支持函数重蝲?。例如:
Remote.method({ timeout:3 }, { errorHandler:somefunc });
q两个参C一是bean的参敎ͼ另一个是元数据对象,但是我们不能清楚的告诉DWR哪个是哪个。ؓ了可以跨览器,我们假定null == undefined?所以当前的情况Q规则是Q?/div>
  • 如果W一个或最后一个是一个函敎ͼ那么它就是回调函敎ͼ没有元数据对象,q且其他参数都是Java的方法参数?
  • 另外Q如果最后一个参数是一个对象,q个对象中有一个callback成员Qƈ且它是个函数Q那么这个对象就是元数据对象Q其他的都是JavaҎ参数?
  • 另外Q如果第一个参数是 null Q我们就假设没有回调函数Qƈ且其他的都是JavaҎ参数。尽如此,我们会检查最后一个参数是不是nullQ如果是发告?
  • 最后如果最后一个参数是nullQ那么就没有callback函数?
  • 另外Q发出错误信h个糟p的h格式?

创造一个与Java对象匚w的Javascript对象

假设你有q样的JavaҎQ?/div>
public class Remote {  public void setPerson(Person p) {    this.person = p;  }}
Person对象的结构是q样的:
public Person {  private String name;  private int age;  private Date[] appointments;  // getters and setters ...}
那么你可以在Javascript中这样写Q?/div>
var p = {  name:"Fred Bloggs",  age:42,  appointments:[ new Date(), new Date("1 Jan 2008") ]};Remote.setPerson(p);
在Javascript没有出现的字D,在Java中就不会被设|?/div>
因ؓsetter都是q回'void'Q我们就不需要用callback函数了。如果你惌一个返回void的服务端Ҏ的完整版Q你也可以加上callback函数。很明显DWR不会向它传递Q何参数?/div>


]]>DWR util.js 学习W记 http://www.aygfsteel.com/liubijin/archive/2010/05/04/320023.html無所?/dc:creator>無所?/author>Tue, 04 May 2010 03:51:00 GMThttp://www.aygfsteel.com/liubijin/archive/2010/05/04/320023.htmlhttp://www.aygfsteel.com/liubijin/comments/320023.htmlhttp://www.aygfsteel.com/liubijin/archive/2010/05/04/320023.html#Feedback0http://www.aygfsteel.com/liubijin/comments/commentRss/320023.htmlhttp://www.aygfsteel.com/liubijin/services/trackbacks/320023.htmlutil.js包含一些有用的函数function,用于在客L面调用Q它可以和dwr分开Q独立营用于你的pȝ中?

q些功能函数在下面这个网址都有CZ,q里只是把他们用中文解释,方便查找.
http://getahead.ltd.uk/dwr/browser/util

主要功能如下Q?
1?() 获得面参数?
2、addOptions and removeAllOptions 初始化下拉框
3、addRows and removeAllRows 填充表格
4、getText  取得text属性?
5、getValue 取得form表单?
6、getValues 取得form多个?
7、onReturn
8、selectRange
9、setValue
10、setValues
11、toDescriptiveString
12、useLoadingMessage
13、Submission box


1?();

功能 : 相当?document.getElementById(id);
参数 : id ?name 属性?;
?:
<script>
         Var ele=$(txt_test);
         Var str=DWRUtil.toDescriptiveString(ele,1)
         DWRUtil.debug(str);
</script>

2。DWRUtil.getValue();
功能 : 获得指定元素 value ?
参数 : id ?name 属性?;
注意 : 该函数只能用于有 value 属性的元素
?:
<script>
         var val=DWRUtil.getValue(“txt_test”);
         DWRUtil.debug(val);
</script>

3?DWRUtil.getValues();
功能 : 获得一l指定元素的 value ?;
参数 :id ?name 构成的数l对?
?:
<script>
         Var arr_=DWRUtil.getValues({“txt_name”:null,”txt_pswd”:null});
         Var str=DWRUtil.toDescriptiveString(arr,1)
         DWRUtil.debug(str);
</script>

4?/strong>DWRUtil.setValue();
功能 : 讄指定元素?value ?
参数 : id ?name 属性?
?:
<script>
         DWRUtil.setValue(“txt_test”,”wiley”);
</script>

5?DWRUtil.setValues();
功能 : 讄一l指定元素的?
参数 : id ?name 构成的数l对?
?:
<script>
         DWRUtil.setValues({“txt_name”:”wiley”,”txt_pswd”:”wiley”});
</script>

6?DWRUtil.getText();
功能 : 获得 select 元素的文本?
参数 : id ?name 属性?
?:
<script>
         Var txt=DWRUtil.getText (“sel_test”);
         Var val=DWRUtil.getValue(“sel_test”);
         DWRUtil.debug(“Text:”+txt+”\tValue:”+val);
</script>

7。DWRUtil.addRows();
功能 : 指定表格d?
格式 :DWRUtil.addRows(id,items, functions);
参数 :
W一个参?:table ?tbody ?id 属性?
W二个参?: 数组或链?( 可能用词不是很适合 )
W三个参?: 函数链表
?
<script>
         Var arr_={“wiley’s blog”,”wiley 中国 ”};
         DWRUtil.addRows(“tby_test”,arr_,[function(arr_){return arr_}]);
</script>

<script>
         Var items=[{“name”:”wiley 中国 ”,”add”:”wiley-cn.com”}];
         DWRUtil.addRows(“tby_test”,items,[function(item){return item.name}, function(item){return item.add}]);
</script>

8。DWRUtil.romoveAllRows();
功能 : 删除指定表格?
参数 :table ?tbody ?id 属性?
<script>
         DWRUtil.romoveAllRows(“tby_test”);// 每次d前将原有数据行删?, 防止数据重叠
         Var items=[{“name”:”wiley 中国 ”,”add”:”wiley-cn.com”}];
         DWRUtil.addRows(“tby_test”,items,[function(item){return item.name}, function(item){return item.add}]);
</script>

9。DWRUtil.addOptions();
功能 : d select 元素?option 子元?
格式 :DWRUtil.addOption(id,items) ?DWRUtil.addOption(id,items,valueProp,textProp);
参数 :
W一个参?:select ?id ?name 属性?
W二个参?: 数组或链?( 填充数据 )
W三、四个参?: 链表节点的属?, W三个填?value |W四个填?text ?
    <script>
         Var arr_={“wiley”,”wiley 中国 ”};
         DWRUtil.addRows(“sel_test”,arr_);// 此时 value ?text 值相?
         DWRUtil.romoveAllOptions(“sel_test”);
         Var items=[{“name”:”wiley 中国 ”,”add”:”wiley-cn.com”}];
         DWRUtil.addRows(“sel_test”,”add”,”name”);// 此时 value ?text 不相?
</script>

10。DWRUtil.romoveAllOptions();
功能 : 删除指定 select 元素?option 子元?
参数 :select 元素?id ?name 属性?
?: 前面例子有用?

11。DWRUtil.debug();
功能 : {h?alert()
?: 前面例子有用?

12。DWRUtil.toDescriptiveString();
功能Q将对象序列化成字符?, 主要用于调试
带debug信息的toStringQ第一个ؓ要debug的对象,W二个参Cؓ处理{。等U如下:

     0: Single line of debug 单行调试 
     1: Multi-line debug that does not dig into child objects 不分析子元素的多行调?nbsp;
     2: Multi-line debug that digs into the 2nd layer of child objects 最多分析到W二层子元素的多行调?

     <input type="text" id="text">
     DWRUtil.toDescrīptiveString("text",0);

13。DWRUtil.useLoadingMessage();
    功能Q当发出ajaxh?面昄的提C等待信?
    例:
    function searchUser(){
        var loadinfo = "loading....."
        regUser.queryAllUser(userList);
        DWRUtil.useLoadingMessage(loadinfo); 
     }

 



]]>
对于DWR的简单ȝ http://www.aygfsteel.com/liubijin/archive/2010/05/04/320021.html無所?/dc:creator>無所?/author>Tue, 04 May 2010 03:39:00 GMThttp://www.aygfsteel.com/liubijin/archive/2010/05/04/320021.htmlhttp://www.aygfsteel.com/liubijin/comments/320021.htmlhttp://www.aygfsteel.com/liubijin/archive/2010/05/04/320021.html#Feedback0http://www.aygfsteel.com/liubijin/comments/commentRss/320021.htmlhttp://www.aygfsteel.com/liubijin/services/trackbacks/320021.htmlq两天学了下DWRQ现在ȝ一下?br /> DWR是方便用AJAXq接JS和JAVA的的一个框?把服务器?Java 对象的方法公开l?JavaScript 代码?br /> 如果是用dwr2.0的jar包,q需要同时导入log4j.jar和commons-loggin.jar,勿忘!!

web.xml和dwr.xml攑֜WEB-INF?
-----------------------------
配置web.xml:WEB工程启动的时候会在这个里面找到具体所用到的类的\径,由此q行加蝲

 

<servlet>
    
<servlet-name> dwr-invoke </servlet-name>
    
<servlet-class> uk.ltd.getahead.dwr.DWRServlet </servlet>
    
<init-param> //q个是调试用Q如果正式发布请该ؓfalseQ不q听?.0默认ؓtrue?br />        <param-name> debug </param-value>
       
<param-value> true </param-value>
    
</init-param>
    
<init-param> //q个是DWR2.0必须?不然会报java.lang.IllegalArgumentException
       
<param-name> classes </param-value>
       
<param-value> java.lang.Object </param-value>
</servlet>

<servlet-mapping>
    
<servlet-name> dwr-invoke </servlet-name>
    
<url-pattern> /dwr/* </url-pattern>
</servlet-mapping>

 

-----------------------------
配置dwr.xml: dwr.xml的作用是让你告诉DWR哪些class中的哪些Ҏ你需要暴露给前台使用Q当DWR启动时候根据dwr.xmlq个文g把javacM的方法{成js中可用的cMҎQ前台可以使用?/p>

?以下是不全按dwr2.0写的Q如果用的是DWR2.0Q那java里暴露类(蓝字昄)不能写在<create>属性里Q应删除后写?lt;include method="" />前,<param name="class" value="***java里暴露的class,必须写完整\?**" />?/p>


 

<dwr>
    
<allow>
       
<create creator="new" javascript="***js调用的class***" class="***java里暴露的class,必须写完整\?**">
           
<include method="***java暴露c里要公开的方法,如果不写默认全部公开***" />
       
</create>
    
</allow>
</dwr>

 

-----------------------------
在html或js面中加?br />

<script src="<%=basePath %>dwr/interface/java里暴露的class"></script>  //切记不能<script *** />q样?/span>
<script src="<%=basePath %>dwr/engine.js"></script>   //Dwr的脚本驱动Js,以上两个必写
<script src="<%=basePath %>dwr/util.js"></script>   //q是个工具包Q可以不调用
<script type="text/javascript">
    
function doMethod()
    {
        
//调用Ҏ:若公开的类是AAA,公开的AAA里的Ҏ是bbb([参数]);
        AAA.bbb([参数],callBack);//回调函数callBack()
    }

    
function callBack(data)//data是后台返回的|名字自取Q也可省略,因ؓJS允许
    {
       处理Ҏ……;
//如果callBack()没有写明q回|可以通过argments[0]拿到
    }
</script>

 


其实我们调用AAA.bbb([参数],callBack);是做了以下q一步:
(下面U字是包装好的,不在前台Q所以即使你没有创徏html或者jsp来调用,也可以通过localhost:8080/工程?dwr 来看C暴露的javac进行测?
 

   function AAA() { };
    AAA.bbb 
= function([参数], callback) 
    { 
        DWREngine._execute('
/dwr/dwr', 'AAA', 'bbb', [参数], callback); 
    }

 

通过在dwr.xml暴露的方法得到js里的ҎQ当我们调用AAA.bbb时候再通过/dwr/dwr转到DWRServlet中去用JAVA里的AAA.bbbҎQ然后返回值到callback?中间l过dwr.xml的convert)


----------------------------
上面对dwr的工作大致分析了下,现在对于参数cd的不同,对dwr.xml也要q行修正?/p>

DWR自动地在Java和JavaScript表示之间调整单数据类?q些cd包括Java原生cd和它们各自的装c表C,q有String、Date、数l和集合cd。但如果参数cd非简单数据类型,则要通过转换?/p>

调用q回JavaBean的javaҎ


在dwr.xml?lt;allow>标签中加?/p>

 

<convert converter="bean" match="***一般来说是javabean***">  //int,String,list{不需要显式的转换可以被js拿到
     
<param name="include" value="***javabean中的属性,?,'隔开***" />  //q句可以不写
</convert>

 

<creator>标签负责公开用于Webq程的类和类的方法,<convertor>标签则负责这些方法的参数和返回类型。convert元素的作用是告诉DWR在服务器端Java 对象表示和序列化的JavaScript之间如何转换数据cd?/p>

q样在js端回调函数直接拿到的data是一个javabean,可以直接通过data.xxx拿到bean的属性xxx?/p>

 

调用有JavaBean参数的javaҎ


dwr.xml配置同上?/p>

在JS端,把要传入的参数写成javabean方式Q例Q要传入一个名为student的javabean,参数有name,password,?br /> var stu = {name:"zhangsan",password:"zspassword"}; //q是json的表C方?br /> AAA.bbb(stu,callBack);

 

调用q回List、Set或者Map的javaҎ


dwr.xml配置同上。如果Collection里的数据是简单数据类型,则可不需要写<convert>

在JS端,以ListQ里面数据是beanZQdata是一个List型,只要用for循环可以依ơ拿到数据?br /> 遍历Ҏ1:

for(var i=0;i<data.length;i++)  
    
/*对于javaҎ的返回gؓList(Set)的情况,DWR其?nbsp;                                化ؓObject数组Q传递个javascript*/
{
    alert(data[i].name
+":"+data[i].password);
}

 

遍历Ҏ2:

for(var property in data) //property为序??开?/span>
{
    var bean 
= data[property];
    alert(bean.name
+":"+bean.password);
}

 

相比q回为javabean多了一个遍历而已?/p>

如果javaҎ的返回gؓMap,则如?/p>

 

for(var property in data) //property为key?/span>
    /*对于 javaҎ的返回gؓMap的情况,DWR其转化Z个ObjectQ?br />      其中Object的属性ؓ原Map的key|属性gؓ原Map相应?nbsp;value?/span>*/
{
  var bean 
= data[property];
  alert(bean.username);
  alert(bean.password);
}

 

如果知道key|则可直接?data.key拿到value

 

调用有List、Set或者Map参数的javaҎ


在dwr.xml?lt;dwr>标签内加?<signatures>标签?/p>

<signatures>标签是用来声明javaҎ中List、Set或者Map参数所包含的确切类Q以便java代码作出判断Q是js-->java的?/p>


例参数是javabean的List,则只要在参数为javabean的例子里构造时候加上[]卛_Q如下:

var stu = [{name:"zhangsan",password:"zspassword"},{name:"lisi",password:"lspassword"}];
//把List当作数组来处?br /> AAA.bbb(stu,callBack);

q且在dwr.xml中增加如下的配置D?刚才试验了下Q不加也可以)

 

<signatures>
 
<![CDATA[
  import java.util.List;
  import com.dwr.AAA;     //AAA的包路径要写完整
  import com.dwr.TestBean;  //javabean
  AAA.bbb(List<TestBean>); 
 
]]>
</signatures>

 

例参数是javabean的Map,key是String,value是javabean,如下:

 

var stu =

{
    
"key1":{name:"zhangsan",password:"zspassword"},
    
"key2":{name:"lisi",password:"lspassword"}
};

AAA.bbb(stu,callBack); 


q且在dwr.xml中增加如下的配置D?刚才试验了下Q不加也可以)

 

<signatures>
 
<![CDATA[
  import java.util.List;
  import com.dwr.AAA;     //AAA的包路径要写完整
  import com.dwr.TestBean;  //javabean
  AAA.bbb(Map<String,TestBean>); 
 
]]>
</signatures>

 

 

 



]]>
DWR.xml配置文g说明?/title><link>http://www.aygfsteel.com/liubijin/archive/2010/05/04/319999.html</link><dc:creator>無所?/dc:creator><author>無所?/author><pubDate>Tue, 04 May 2010 02:43:00 GMT</pubDate><guid>http://www.aygfsteel.com/liubijin/archive/2010/05/04/319999.html</guid><wfw:comment>http://www.aygfsteel.com/liubijin/comments/319999.html</wfw:comment><comments>http://www.aygfsteel.com/liubijin/archive/2010/05/04/319999.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/liubijin/comments/commentRss/319999.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/liubijin/services/trackbacks/319999.html</trackback:ping><description><![CDATA[     摘要: 1、徏立dwr.xml 配置文g M一个dwr.xml的文仉需要包含DWR DOCTYPE的声明行Q格式如下: <!DOCTYPE dwr PUBLIC  "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"  "http://www...  <a href='http://www.aygfsteel.com/liubijin/archive/2010/05/04/319999.html'>阅读全文</a><img src ="http://www.aygfsteel.com/liubijin/aggbug/319999.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/liubijin/" target="_blank">無所?/a> 2010-05-04 10:43 <a href="http://www.aygfsteel.com/liubijin/archive/2010/05/04/319999.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Դ</a>| <a href="http://" target="_blank">ն</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ľ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">½</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">¡</a>| <a href="http://" target="_blank">½</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">³</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">˼</a>| <a href="http://" target="_blank">麣</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">⳵</a>| <a href="http://" target="_blank">鴨</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank">֣</a>| <a href="http://" target="_blank">Դ</a>| <a href="http://" target="_blank">³</a>| <a href="http://" target="_blank">书</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ž</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">̽</a>| <a href="http://" target="_blank">ٸ</a>| <a href="http://" target="_blank">ղ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">⳵</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>