隨筆 - 20  文章 - 2  trackbacks - 0
          <2009年3月>
          22232425262728
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          常用鏈接

          留言簿(1)

          隨筆檔案

          相冊

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          無聊在電腦上亂點.點出一個DWR的例子.于是乎開始學習DWR

          拿出自己的練習曬下;

          在做練習的時候遇到一個問題。web-inf下不生成classes文件夾,也不生成.class文件

          經過研究解決辦法為:右鍵點擊webmodule   選擇properties,再選擇Content,選擇Include All classes and  resources  確定。OK

          web.xml

           

          <?xml version="1.0" encoding="UTF-8"?>
          <web-app xmlns="http://java.sun.com/xml/ns/j2ee   <display-name>WebModule1</display-name>
            <servlet>
              <servlet-name>dwr-invoker</servlet-name>
              <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
              <init-param>
                <param-name>debug</param-name>
                <param-value>true</param-value>
              </init-param>
              <load-on-startup>1</load-on-startup>
            </servlet>
            <servlet-mapping>
              <servlet-name>dwr-invoker</servlet-name>
              <url-pattern>/dwr/*</url-pattern>
            </servlet-mapping>
          </web-app>

           

           

          dwr.xml

          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "
          http://www.getahead.ltd.uk/dwr/dwr20.dtd">
          <dwr>
              <allow>
              <!-- javascript的對象是jsmethodname,create="new"是DWR自己創建類 -->
                  <create javascript="jsmethodname" creator="new" scope="application">
                      <!-- value是java中的類名 -->
                      <param name="class" value="org.li.dwr.Hello"></param>
          <!--<include>標簽指定要公開給javascript的方法。不指定的話就公開所有方法。
            <exclude>標簽指定要防止被訪問的方法。-->

                     <include method="alertStr"/>
                     <include method="alertJSStr"/>
                     <include method="returnAl"/>
                     <include method="getList"/>
                     <include method="getObj"/>
                  </create>

            <!--轉換java類型   -->
                 <convert converter="bean" match="org.li.dwr.InputRecord">
                </convert>
              </allow>
          </dwr>

          jsp頁面:

           

          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          <html>
            <head>
              <title>DWR</title>
              <meta http-equiv="content-type" content="text/html; charset=GBK">
              <script type='text/javascript' src='dwr/interface/jsmethodname.js'></script>
              <script type='text/javascript' src='dwr/engine.js'></script>
              <script type='text/javascript' src='dwr/util.js'></script>
              <script type="text/javascript" src="hello.js"></script>
             <!--其中jsmethodname.js是dwr根據配置文件自動生成的,engine.js和util.js是dwr自帶的腳本文件。
           -->
            </head>
            <body>
              <input id="jbutton" type="button" value="Hello World" onclick="jbClick()"/>
              <div id="jdiv"></div>
              <div id="jdiv2"></div>
             
              <div id="uid"></div>
              <div id="uname"></div>
              <div id="usex"></div>
              <div id="uaddress"></div>

            </body>
          </html>

          js :hello.js

           

          /*
          function load()//載入的時候調用
          {
              var jbutton = document.getElementById("jbutton");
              jbutton.onclick=function(event)//注冊按鈕點擊事件
              {
                  jbClick();
              };
          }
          */
          function jbClick()//按鈕點擊事件
          {
            //  jshello.getHelloWorld(callback);//沒有參數傳遞,只傳遞回調函數就行
           //   jsmethodname.alertStr(callback1);//無參數
              var data="js傳入java中的值";
            //  jsmethodname.alertJSStr(data,callback);//有參數。第一個為參數,第二個為回調方法接收返回值
            jsmethodname.getList(callbackList);  //無參數,返回list
            //jsmethodname.getObj(callbackObj);
          }
          function callback1(msg)//回調函數 ,調用java方法的javascript函數
          {
               //msg就是java方法的返回值
               alert(msg);
          }

          function callback(msg)//回調函數
          {
              //這里可以進行參數處理DWRUtil 的 setValue() 方法會將傳回的 msg 設定給指定 id 的 DOM
              DWRUtil.setValue('jdiv',msg);
          }
          function callbackList(data){

          for(var i=0;i<data.length;i++){
            DWRUtil.setValue("uid", data[i].id);
            DWRUtil.setValue("uname", data[i].name);
            DWRUtil.setValue("usex", data[i].sex);
            DWRUtil.setValue("uaddress", data[i].address);
          }
          }


          function callbackObj(data){
           
           //知道屬性
            DWRUtil.setValue("uid", data.id);
            DWRUtil.setValue("uname", data.name);
            DWRUtil.setValue("usex", data.sex);
            DWRUtil.setValue("uaddress", data.address);
           
           /**
           * 不知道屬性
          for(var property in data){
            //alert("property:"+property);
            alert(property+":"+data[property]);
            }
           */

          }

           

          java類

          Hello.java

           

          package org.li.dwr;

          import java.util.Date;
          import java.util.ArrayList;
          import java.util.List;

          public class Hello {
            public String getHelloWorld() {
              return "現在的時間為:" + new Date();
            }

            public String alertStr() {
              return "DWR框架:無參數";
            }

            public String alertJSStr(String jsvalue) {
              return "DWR框架:" + jsvalue;
            }

            public ArrayList returnAl() {
              ArrayList al = new ArrayList();
              al.set(1, "a");
              al.set(2, "b");
              al.set(3, "c");
              al.set(4, "d");
              return al;
            }
           
            public List getList() {
            List list = new ArrayList();
            for(int i=0;i<5;i++){
              InputRecord ir = new InputRecord();
              ir.setId(1);
              ir.setName("依韻");
              ir.setSex("男");
              ir.setAddress("北京市");
              list.add(ir);
            }
            return list;
           }
           
           public InputRecord getObj() {
           InputRecord ir = new InputRecord();
           ir.setId(2);
           ir.setName("白色黃昏");
           ir.setSex("女");
           ir.setAddress("河南");
           return ir;
           }


          }

           

          InputRecord.java

          package org.li.dwr;

          public class InputRecord {
            private int id;
            private String name;
            private String sex;
            private String address;
            public String getAddress() {
              return address;
            }

            public int getId() {
              return id;
            }

            public String getName() {
              return name;
            }

            public String getSex() {
              return sex;
            }

            public void setSex(String sex) {
              this.sex = sex;
            }

            public void setName(String name) {
              this.name = name;
            }

            public void setAddress(String address) {
              this.address = address;
            }

            public void setId(int id) {
              this.id = id;
            }
          }

           


          文章來源:http://wxq594808632.blog.163.com/blog/static/1090797552009219050210
          posted on 2009-03-19 12:50 武志強 閱讀(228) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 安徽省| 红安县| 康定县| 女性| 南涧| 思南县| 洪湖市| 旅游| 满城县| 滨海县| 美姑县| 迁西县| 灯塔市| 阿荣旗| 莱芜市| 仙游县| 阜宁县| 泾源县| 西吉县| 沅江市| 莱芜市| 安新县| 广汉市| 罗源县| 五家渠市| 岳池县| 金湖县| 秦安县| 蒙城县| 钟山县| 余姚市| 许昌县| 米林县| 富阳市| 湖南省| 大洼县| 和顺县| 如东县| 辉南县| 济阳县| 涟水县|