`
44424742
  • 浏览: 225245 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

在前人的基础上更改的DWRProxy

阅读更多

修改的地方:

1.多个DWR同时调用不受限制

2.调用DWR的方法的参数不做限制,可以任意。

3.增加EXT常用的几个Reader的实现:Ext.data.XmlReader Ext.data.JsonReader Ext.data.DWRArrayReader

Js代码 复制代码

调用示例:

combo.html 代码

Js代码 复制代码
  1. <!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <metahttp-equiv="Content-Type"content="text/html;charset=GBK">
  5. <linkrel="stylesheet"type="text/css"href="../js/extjs/resources/css/ext-all.css"/>
  6. <scripttype='text/javascript'src='/dwr/dwr/interface/DWRCall.js'></script>
  7. <scripttype='text/javascript'src='/dwr/dwr/engine.js'></script>
  8. <scripttype="text/javascript"src="../js/extjs/adapter/ext/ext-base.js"></script>
  9. <scripttype="text/javascript"src="../js/extjs/ext-all-debug.js"></script>
  10. <scripttype="text/javascript"src="../js/extjs/ext-lang-zh_CN.js"></script>
  11. <scripttype="text/javascript"src="../js/extjs/DWRProxy.js"></script>
  12. <scripttype="text/javascript"src="comboxTest.js"></script>
  13. <title>Combo对象学习</title>
  14. <scripttype="text/javascript">
  15. </script>
  16. </head>
  17. <body>
  18. <inputtype='button'onclick='alert(Ext.get("local-states").getValue());'value='store.getCount())'>
  19. <div>
  20. <inputtype='text'id='local-states'></input>
  21. </div>
  22. </body>
  23. </html>

comboxTest.js代码:

Js代码 复制代码
  1. varstore;
  2. Ext.onReady(function(){
  • vardata=[['AL','Alabama'],['AK','Alaska']];
  • //DWRCall.getComboArray('1',function(data){alert(data[0][1]);});
  • /*varstore=newExt.data.SimpleStore({
  • fields:['text','value'],
  • data:data
  • });
  • */
  • /**CallcomboxData.jsp***/
  • /*store=newExt.data.Store({
  • url:'comboxData.jsp',
  • reader:newExt.data.XmlReader({
  • id:'id',
  • totalRecords:'results',
  • record:'row'
  • },[{name:'text',mapping:'name'},{name:'value',mapping:'occupation'}])
  • });
  • */
  • /*
  • store=newExt.data.Store({
  • url:'comboxData.jsp',
  • reader:newExt.data.JsonReader({
  • totalProperty:"results",//Thepropertywhichcontainsthetotaldatasetsize(optional)
  • root:"rows",//ThepropertywhichcontainsanArrayofrowobjects
  • id:"id"
  • },newExt.data.Record.create([
  • {name:'text',mapping:'name'},
  • {name:'value',mapping:'occupation'}
  • ]))
  • });
  • */
  • /******callDWR********/
  • /*
  • store=newExt.data.Store({
  • proxy:newExt.data.DWRProxy(DWRCall.getComboJsonByObject,"condy",{name:'condy',address:'xxxx',age:26}),
  • reader:newExt.data.DWRJsonReader({
  • totalProperty:"results",
  • root:"rows",
  • id:"id"
  • },newExt.data.Record.create([
  • {name:'text',mapping:'name'},
  • {name:'value',mapping:'occupation'}
  • ]))
  • });
  • */
  • /*
  • store=newExt.data.Store({
  • proxy:newExt.data.DWRProxy(DWRCall.getComboArray,"condy"),
  • reader:newExt.data.DWRArrayReader({
  • },newExt.data.Record.create([
  • {name:'text',mapping:0},
  • {name:'value',mapping:1}
  • ]))
  • });
  • */
  • store=newExt.data.Store({
  • proxy:newExt.data.DWRProxy(DWRCall.getComboXml,"condy","test"),
  • reader:newExt.data.DWRXmlReader({
  • id:'id',
  • totalRecords:'results',
  • record:'row'
  • },[{name:'text',mapping:'name'},{name:'value',mapping:'occupation'}])
  • });
  • varcombo=newExt.form.ComboBox({
  • store:store,
  • typeAhead:true,
  • displayField:'text',
  • valueField:'value',
  • mode:'local',
  • triggerAction:'all',
  • emptyText:'Selectastate...',
  • selectOnFocus:true,
  • applyTo:'local-states'
  • });
  • store.load({params:{}});
  • }
  • );
  • java部分代码:

    DWRCall.java

    Java代码 复制代码

    1. packagecom.test;
    2. publicclassDWRCall{
    3. publicStringgetCombo(Stringid){
    4. System.out.println("bbbbbbbbbbbbbbbb");
    5. StringBuffersb=newStringBuffer();
    6. sb.append("[[").append("'condy','name'],['candy','name']]");
    7. System.out.println(sb.toString());
    8. returnsb.toString();
    9. }
    10. publicString[][]getComboArray(Stringid){
    11. System.out.println("id:"+id);
    12. String[][]aaData={newString[]{"aaa","111"},newString[]{"bbb","222"}};
    13. returnaaData;
    14. }
    15. publicStringgetComboJson(Stringparam1,Stringparam2){
    16. System.out.println("param1:"+param1);
    17. System.out.println("param2:"+param2);
    18. StringBuffersb=newStringBuffer();
    19. sb.append("{'results':2,'rows':[");
    20. sb.append("{'id':1,'name':'Bill',occupation:'Gardener'},");
    21. sb.append("{'id':2,'name':'Ben',occupation:'Horticulturalist'}]");
    22. sb.append("}");
    23. System.out.println(sb.toString());
    24. returnsb.toString();
    25. }
    26. publicStringgetComboXml(Stringparam1,Stringparam2){
    27. System.out.println("param1:"+param1);
    28. System.out.println("param2:"+param2);
    29. StringBuffersbxml=newStringBuffer();
    30. sbxml.append("<?xmlversion=\"1.0\"encoding=\"GBK\"?>\n");
    31. sbxml.append("<dataset>\n");
    32. sbxml.append("<results>2</results>\n");
    33. sbxml.append("<row>\n");
    34. sbxml.append("<id>1</id>\n");
    35. sbxml.append("<name>Bill</name>\n");
    36. sbxml.append("<occupation>Gardener</occupation>\n");
    37. sbxml.append("</row>\n");
    38. sbxml.append("<row>\n");
    39. sbxml.append("<id>2</id>\n");
    40. sbxml.append("<name>Condy</name>\n");
    41. sbxml.append("<occupation>Horticulturalist</occupation>\n");
    42. sbxml.append("</row>\n");
    43. sbxml.append("</dataset>\n");
    44. System.out.println(sbxml.toString());
    45. returnsbxml.toString();
    46. }
    47. publicStringgetComboJsonByObject(Stringparam1,DWRObjectdwrobject){
    48. System.out.println("param1:"+param1);
    49. System.out.println("DWRObject:name:"+dwrobject.getName()+"age:"+dwrobject.getAge());
    50. StringBuffersb=newStringBuffer();
    51. sb.append("{'results':2,'rows':[");
    52. sb.append("{'id':1,'name':'Bill',occupation:'Gardener'},");
    53. sb.append("{'id':2,'name':'Ben',occupation:'Horticulturalist'}]");
    54. sb.append("}");
    55. System.out.println(sb.toString());
    56. returnsb.toString();
    57. }
    58. }

    DWRObject.java

    Java代码 复制代码
    1. packagecom.test;
    2. publicclassDWRObject{
    3. privateStringname;
    4. privateStringaddress;
    5. privateintage;
    6. /**
    7. *@returntheaddress
    8. */
    9. publicStringgetAddress(){
    10. returnaddress;
    11. }
    12. /**
    13. *@paramaddresstheaddresstoset
    14. */
    15. publicvoidsetAddress(Stringaddress){
    16. this.address=address;
    17. }
    18. /**
    19. *@returntheage
    20. */
    21. publicintgetAge(){
    22. returnage;
    23. }
    24. /**
    25. *@paramagetheagetoset
    26. */
    27. publicvoidsetAge(intage){
    28. this.age=age;
    29. }
    30. /**
    31. *@returnthename
    32. */
    33. publicStringgetName(){
    34. returnname;
    35. }
    36. /**
    37. *@paramnamethenametoset
    38. */
    39. publicvoidsetName(Stringname){
    40. this.name=name;
    41. }
    42. }
    分享到:
    评论

    相关推荐

    Global site tag (gtag.js) - Google Analytics