注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

zhouhaigang.love的博客

喜欢冬日黄昏那冻住的山

 
 
 

日志

 
 

在eclips中创建dwr的应用程序  

2008-03-16 16:44:58|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 

在Eclipse中开发基于DWR的AJAX的Web应用(1)

1、在Eclipse中创建一个Web项目,名称为DWRWebTest,同时指定其Web应用的名称为DWRWebTest

2、添加DWR的系统包

(1)导入我们的系统包

(2)定位到我们的系统包所在的目录处

(3)最后将产生出下面的状态

3、在web.xml中部署DWR的Servlet

(1)DWR 1.14版的uk.ltd.getahead.dwr.DWRServlet的基本配置

   <servlet>

      <display-name>DWR Servlet</display-name>

      <servlet-name>dwr-invoker</servlet-name>

      <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>   

   </servlet>

    <servlet-mapping>

          <servlet-name>dwr-invoker</servlet-name>

          <url-pattern>/dwr/*</url-pattern>

</servlet-mapping>

(2)为该uk.ltd.getahead.dwr.DWRServlet提供各种配置参数

l         DWR 1.14版最后的配置内容如下

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.4"

    xmlns="http://java.sun.com/xml/ns/j2ee"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee

    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

  <display-name>DWRWebTest</display-name>

  <servlet>

    <servlet-name>dwr-invoker</servlet-name>

    <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>

    <init-param>

      <param-name>logLevel</param-name>

      <param-value>DEBUG</param-value>

</init-param>

 

    <init-param>

      <param-name>config</param-name>

      <param-value>/WEB-INF/dwr.xml</param-value>

</init-param>

 

    <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>

l         DWR 2.0版最后的配置内容如下

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.4"

    xmlns="http://java.sun.com/xml/ns/j2ee"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee

    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

  <display-name>DWRWebTest</display-name>

  <servlet>

    <servlet-name>dwr-invoker</servlet-name>

    <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>

    <init-param>

      <param-name>logLevel</param-name>

      <param-value>DEBUG</param-value>

</init-param>

 

    <init-param>

      <param-name>config</param-name>

      <param-value>/WEB-INF/dwr.xml</param-value>

</init-param>

 

    <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>

4、添加log4J

(1)DWR中的log的实现并没有强制某个Logging的形式

DWR并不需要要求我们强制某个Logging的形式,可以为各种的Logging的实现。一般我们采用Commons-Logging---然后再采用Log4J的实现。

(2)需要在web.xml中增加下面的配置项目

    在 web.xml 文件中对前面的uk.ltd.getahead.dwr.DWRServlet添加下面的配置参数----前面已经设置好了!

<init-param>

 <param-name>logLevel</param-name>

     <param-value>DEBUG</param-value>

</init-param>

(3)同时,将log4j.properties的文件内容放在WEB-INF/classes目录下

(4)其内容可以为下面的内容

# For JBoss: Avoid to setup Log4J outside $JBOSS_HOME/server/default/deploy/log4j.xml!

# For all other servers: Comment out the Log4J listener in web.xml to activate Log4J.

log4j.rootLogger=INFO, stdout, logfile

 

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - <%m>%n

 

log4j.appender.logfile=org.apache.log4j.RollingFileAppender

log4j.appender.logfile.File=mylog.log

log4j.appender.logfile.MaxFileSize=512KB

# Keep three backup files.

log4j.appender.logfile.MaxBackupIndex=3

# Pattern to output: date priority [category] - message

log4j.appender.logfile.layout=org.apache.log4j.PatternLayout

log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

执行过程中,能够看到dwr的各种状态提示

(5)同时,将在当前的项目的Tomcat目录下,产生下面的日志文件

(6)添加commons-logging.jar和log4j-1.2.14.jar

5、设计dwr.xml文件

(1)新建一个dwr.xml文件

(2)XML文件的内容

l         该XML文件的内容如下-----对DWR1.14版

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd">

<dwr>

  <allow>

    <create creator="new" javascript="JDate" scope="application">

       <param name="class" value="java.util.Date"/>

    </create>

  </allow>

</dwr>

l         该XML文件的内容如下-----对DWR2.0版

<?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>

   <create creator="new" javascript="JDate" scope="application">

      <param name="class" value="java.util.Date"/>

    </create>

  </allow>

</dwr>

6、添加一个JSP页面

(1)该页面为index.jsp

(2)将产生出一个空的页面

(3)注意页面设计的一些规则

l         对于JSP页面都需要在页面的最开始部分增加以下语句

<%@ page contentType="text/html; charset=gb2312" %>

l         对于HTML页面都需要在页面的最开始部分增加以下语句

<meta http-equiv="Content-Language" content="zh-cn">

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

(4)注意表单中的各个成员控件的命名规则

    页面编码过程中用到的所有控件命名都需要遵循相应规则,方便程序的可读性。采用控件类型缩写前缀(小写)+英文单词(第一个字母大写)的方法来命名每一个控件。具体规则如下:

 

控件类型

前缀

Button

btn

Form

frm

Select

sel

TextArea

txt

Input

ipt

Image

img

DIV

div

 

7、执行本Web应用

(1)配置服务器

(2)部署本应用

将看到下面的结果

(3)启动服务器后,将看到异常抛出

原因是DWR2.0 加入了JDK5的注释(annotations),DwrServlet初始化的时候会去检查注释的类。

可以通过对DwrServlet添加下面的<init-param >来避免。

<init-param >

       <param-name>classes</param-name>

       <param-value>java.lang.Object</param-value>

</init-param>

再启动服务器,将不再出现异常抛出,并能够看到log信息。

(4)输入http://localhost:8080/DWRWebTest/dwr

能够看到我们前面的java.util.Date的本地化的结果的*.js文件。

(5)点击上面的JDate的链接

将出现下面的状态----其中的JDate.js是动态生成的。

(6)点击上面的JDate.js的链接

将可以看到动态生成的JDate.js内容

(7)可以在线测试

8、修改前面的index.jsp能够对我们的java.util.Date进行访问

(1)在页面中引入我们的JDate.js和DWR其它的*.js文件的方法

在上面的提示中告诉我们,为了能够在页面中使用我们的java.util.Date类,应该包含的JavaScript的引用要求:

<script type='text/javascript' src='/DWRWebTest/dwr/interface/JDate.js'></script>

  <script type='text/javascript' src='/DWRWebTest/dwr/engine.js'></script>

当然,还需要添加下面的内容

  <script type='text/javascript' src='/DWRWebTest/dwr/util.js'></script>

注意:在*.jsp页面中可以利用request.getContextPath()来获得“/DWRWebTest”。

(2)修改前面的index.jsp能够对我们的java.util.Date进行访问

<%@ page contentType="text/html; charset=GBK" %>

<html><head><title>index</title>

<%

   String webContext=request.getContextPath(); 

%>

<script type='text/javascript' src='<%=webContext%>/dwr/interface/JDate.js'></script>

 <script type='text/javascript' src='<%=webContext%>/dwr/engine.js'></script>

 <script type='text/javascript' src='<%=webContext%>/dwr/util.js'></script>

 <script type='text/javascript'>

function showTime()

{

        JDate.toString(callBackFun1);

}

callBackFun1 = function(toStringReturnTimeString)

{

     alert("当前的服务器端的时间为:"+toStringReturnTimeString);

}

</script>

</head>

<body bgcolor="#ffffff">

    <a href="#" onclick="javascript:showTime()"> 点击我可以获得当前服务器端的时间

     </a>

</body>

</html>

9、再执行本Web应用

(1)输入http://localhost:8080/DWRWebTest/index.jsp

(2)点击上面的超链接,将出现下面的提示

(3)同时,在状态台的面板中出现下面的状态提示

10、显示地公开声明java.util.Date类中的方法

(1)默认时是将类中的所有的public方法都发布

(2)可以只发布部分方法-----只需要将dwr.xml中的配置内容改变为下面的内容

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd">

 

<dwr>

  <allow>

   <create creator="new" javascript="JDate" scope="application">

      <param name="class" value="java.util.Date"/>

      <include method="toString"/>

    </create>

  </allow>

</dwr>

(3)再启动http://localhost:8080/DWRWebTest/dwr/test/JDate后,将看到下面的内容

l         正常情况下,为下面的状态

l         而对于被屏蔽的方法,将不可以调用(灰色标示的方法)。

除了toString()以外的其它的方法都被屏蔽掉了---对客户端来说,将成为不可见的方法,这样可以提高我们JavaBean类中的方法的安全性。

11、将页面中的JavaScript脚本放到一个外部文件中

(1)添加外部*.js文件(webapp.js)

输入文件名称

(2)指定其编码为中文编码

(3)设计该webapp.js的内容

function showTime()

{

   JDate.toString(callBackFun);

}

callBackFun = function(toStringReturnTimeString)

{

   alert("当前的时间是:"+toStringReturnTimeString);

}

 

(3)修改前面的index.jsp页面为下面的内容

<%@ page contentType="text/html; charset=GBK" %>

<html><head><title>index</title>

<%

   String webContext=request.getContextPath(); 

%>

  <script type='text/javascript' src='<%=webContext%>/dwr/interface/JDate.js'></script>

  <script type='text/javascript' src='<%=webContext%>/dwr/engine.js'></script>

 <script type='text/javascript' src='<%=webContext%>/dwr/util.js'></script>

 

 <script type='text/javascript' src='<%=webContext%>/webapp.js'></script>

 </head>

<body bgcolor="#ffffff">

   <a href="#" onclick="javascript:showTime()"> 点击我可以获得当前的时间

   </a>

</body>

</html>

(5)再执行本项目(输入http://localhost:8080/DWRWebTest/index.jsp),将同样看到前面一样的结果

这样的好处是将JavaScript都统一地放到某个外部文件中,将能够更好地重用!

在项目中添加我们自己的JavaBean

1、添加一个JavaBean(它作为我们的业务组件JavaBean)

(1)提供一个接口TimeInfoInterface,包名称为com.px1987.dwrexampl.model

设计该接口

package com.px1987.dwrexampl.model;

public interface TimeInfoInterface

{

       public String getSystemTime();

}

(2)提供一个上面的接口的实现类

类名称为TimeInfoJavaBean,包名称为com.px1987.dwrexampl.model

编程该JavaBean并且提供一个义务处理方法

package com.px1987.dwrexampl.model;

import java.util.Date;

public class TimeInfoJavaBean implements TimeInfoInterface

{

       public TimeInfoJavaBean()    //注意:应该提供一个默认的构造方法的声明

       {

              // TODO 自动生成构造函数存根

       }

 

       public String getSystemTime()

       {

              return new Date().toLocaleString();

       }

}

 

2、对该JavaBean进行远程公开化

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd">

 

<dwr>

  <allow>

   <create creator="new" javascript="JDate" scope="application">

      <param name="class" value="java.util.Date"/>

      <include method="toString"/>

    </create>

     <create creator="new" javascript="timeInfoJavaBean" scope="application">

      <param name="class" value="com.px1987.dwrexampl.model.TimeInfoJavaBean"/>

      <include method="getSystemTime"/>

    </create>

  </allow>

</dwr>

3、在线测试一下

点击上面的“timeInfoJavaBean”的链接

因此,*.js文件为

  <script type='text/javascript' src='/DWRWebTest/dwr/interface/timeInfoJavaBean.js'></script>

 

对我们的业务组件类中的方法进行在线测试

4、修改webapp.js以增加一个getSystemTime进行调用的JavaScript方法

function showTime()

{

   JDate.toString(callBackFun1);

}

callBackFun1 = function(toStringReturnTimeString)

{

   alert("当前的时间是:"+toStringReturnTimeString);

}

 

function getSystemTime()

{

   timeInfoJavaBean.getSystemTime(callBackFun2);

}

callBackFun2 = function(returnSystemTimeString)

{

   alert("我们的JavaBean返回的服务器端的时间为:"+returnSystemTimeString);

}

5、在JSP页面中对该方法进行调用-----注意应该还要包含我们的JavaBean所对应的*.js文件

<%@ page contentType="text/html; charset=GBK" %>

<html><head><title>index</title>

 <%

   String webContext=request.getContextPath(); 

%>

  <script type='text/javascript' src='<%=webContext%>/dwr/interface/JDate.js'></script>

  <script type='text/javascript' src='<%=webContext%>/dwr/engine.js'></script>

 <script type='text/javascript' src='<%=webContext%>/dwr/util.js'></script>

 <script type='text/javascript' src='<%=webContext%>/webapp.js'></script>

 <script type='text/javascript' src='<%=webContext%>/dwr/interface/timeInfoJavaBean.js'></script>

 </head>

<body bgcolor="#ffffff">

   <a href="#" onclick="javascript:showTime()"> 点击我可以获得当前的时间

   </a><br />      <br><br>

   <a href="#" onclick="javascript:getSystemTime()">

     点击我可以获得由我们JavaBean返回的系统当前的时间

   </a>

</body>

</html>

 

6、执行本项目

(1)输入http://localhost:8080/DWRWebTest/index.jsp

(2)点击上面的“点击我可以获得系统当前的时间”的链接

将出现下面的结果信息

同时,在状态条中能够看到状态提示


采用两个dwr的配置文件 

1、采用两个dwr的配置文件

(1)在WEB-INF的目录下,再增加一个dwr的*.xml文件,名称为dwr-timeBean.xml

(2)该文件的内容为

l         DWR1.14板为下面的内容

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd">

 

<dwr>

  <allow>

     <create creator="new" javascript="timeInfoJavaBean" scope="application">

      <param name="class" value="dwrwebapp.TimeInfoJavaBean"/>

      <include method="getSystemTime"/>

    </create>

  </allow>

</dwr>

l         DWR2.0板为下面的内容

<?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>  

     <create creator="new" javascript="timeInfoJavaBean" scope="application">

      <param name="class" value="dwrwebapp.TimeInfoJavaBean"/>

      <include method="getSystemTime"/>

    </create>   

  </allow>

</dwr>

(3)同时,修改前面的dwr.xml中的内容

l         DWR1.13板为下面的内容

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd">

<dwr>

  <allow>

   <create creator="new" javascript="JDate" scope="application">

      <param name="class" value="java.util.Date"/>

      <include method="toString"/>

    </create>

  </allow>

</dwr>

l         DWR2.0板为下面的内容

<?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>

   <create creator="new" javascript="JDate" scope="application">

      <param name="class" value="java.util.Date"/>

       <include method="toString"/>

    </create>

  </allow>

</dwr>

(4)在web.xml对前面的两个*.xml加以定义

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.4"

       xmlns="http://java.sun.com/xml/ns/j2ee"

       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

       xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee

       http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

   <servlet>

    <servlet-name>dwr-invoker</servlet-name>

<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>

    <init-param>

      <param-name>logLevel</param-name>

      <param-value>DEBUG</param-value>

    </init-param>

    <init-param>

      <param-name>config</param-name>

      <param-value>/WEB-INF/dwr.xml</param-value>

    </init-param>

    <init-param>

      <param-name>config-timeBean</param-name>

      <param-value>/WEB-INF/dwr-timeBean.xml</param-value>

    </init-param>

    <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>

注意:其中的参数的名称应该以“config”开头------如本例中的“config-timeBean”。

(5)再部署并执行本应用

同样出现我们前面相同的结果,表示系统已经能够正确地识别出我们的两个*.xml配置文件。

 

在项目中添加我们自己的VO JavaBean

1、添加一个VO的JavaBean(它代表我们的业务实体组件)

类名称为TimeInfoVOBean,包名称为com.px1987.dwrexampl.model

2、在该TimeInfoVOBean类中增加下面的属性,并提供get/set 方法

  private String hourText;

  private String minuteText;

  private String secondText;

最后的代码如下:

package com.px1987.dwrexampl.model;

public class TimeInfoVOBean

{

  private String hourText;

  private String minuteText;

  private String secondText;

 

  public TimeInfoVOBean()

  {

  }

  public String getHourText() {

    return hourText;

  }

  public String getMinuteText() {

    return minuteText;

  }

  public String getSecondText() {

    return secondText;

  }

  public void setSecondText(String secondText) {

    this.secondText = secondText;

  }

  public void setMinuteText(String minuteText) {

    this.minuteText = minuteText;

  }

  public void setHourText(String hourText) {

    this.hourText = hourText;

  }

}

3、在我们前面的dwr-timeBean.xml中公开TimeInfoVOBean类型

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd">

<dwr>

  <allow>

     <create creator="new" javascript="timeInfoJavaBean" scope="application">

      <param name="class" value="dwrwebapp.TimeInfoJavaBean"/>

      <include method="getSystemTime"/>

    </create>   

      <convert converter="bean"    match="com.px1987.dwrexampl.model.TimeInfoVOBean">

      <param name="include" value="hourText,minuteText,secondText"/>

   </convert>

  </allow>

</dwr>

4、修改前面的TimeInfoJavaBean类以增加一个TimeInfoVOBean对象及其set方法

(1)修改接口以增加对该方法的定义

package com.px1987.dwrexampl.model;

public interface TimeInfoInterface

{

       public String getSystemTime();

       public TimeInfoVOBean setOneTimeInfoVOBean(TimeInfoVOBean oneTimeInfoVOBean);

}

(2)修改实现类

package com.px1987.dwrexampl.model;

import java.util.Date;

public class TimeInfoJavaBean implements TimeInfoInterface

{

   public TimeInfoJavaBean()     //注意:应该提供一个默认的构造方法的声明

  {

  }

  public String getSystemTime()

  {

    return new Date().toLocaleString();

  }

public TimeInfoVOBean setOneTimeInfoVOBean(TimeInfoVOBean oneTimeInfoVOBean)

       {

           this.oneTimeInfoVOBean = oneTimeInfoVOBean;

           System.out.println(oneTimeInfoVOBean.getHourText()+":"+oneTimeInfoVOBean.getMinuteText()+":"+oneTimeInfoVOBean.getSecondText());

           return oneTimeInfoVOBean;

         }

         TimeInfoVOBean oneTimeInfoVOBean=null;

}

5、修改前面的dwr-timeBean.xml对setOneTimeInfoVOBean加以公开

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd">

<dwr>

  <allow>   

     <create creator="new" javascript="timeInfoJavaBean" scope="application">

             <param name="class" value="com.px1987.dwrexampl.model.TimeInfoJavaBean"/>

             <include method="getSystemTime"/>

             <include method="setOneTimeInfoVOBean"/>

    </create>

    <convert converter="bean"    match="com.px1987.dwrexampl.model.TimeInfoVOBean">

           <param name="include" value="hourText,minuteText,secondText"/>

    </convert>

   

  </allow>

</dwr>

6、在页面中访问该JavaBean

(1)在webapp.js中增加下面的方法定义

function setTimeInfoVOBean_ToServerMethod()

       {

          var oneTimeInfoVOBeanJavaScript = { hourText:"16", minuteText:"30",secondText:"10" };

          timeInfoJavaBean.setOneTimeInfoVOBean(oneTimeInfoVOBeanJavaScript,  callBackFun3);  

       }

       callBackFun3= function(returnTimeInfoVOBean)

       {

          var returnTime=returnTimeInfoVOBean.hourText+":"+returnTimeInfoVOBean.minuteText+":"+returnTimeInfoVOBean.secondText;

          alert("服务器端返回的TimeInfoVOBean的时间为:"+returnTime);

       }

该方法实现将JavaScrpt中的oneTimeInfoVOBeanJavaScript直接转换为TimeInfoVOBean类型的对象。

另一种示例:

       假设你有这样的Java方法:

public class Remote

{

  public void setPerson(Person p)

  {

           this.person = p;

        }

}

Person对象的结构是这样的:

public Person

{

             private String name;

private int age;

private Date[] appointments;

  // getters and setters ...

}

那么我们可以在Javascript中这样写:

var p = {

  name:"张三",

  age:42,

  appointments:[ new Date(), new Date("1 Jan 2008") ]

};

Remote.setPerson(p);

(2)在index.jsp添加一个超链接

<%@ page contentType="text/html; charset=GBK" %>

<html><head><title>index</title>

<%

   String webContext=request.getContextPath(); 

%>

  <script type='text/javascript' src='<%=webContext%>/dwr/interface/JDate.js'></script>

  <script type='text/javascript' src='<%=webContext%>/dwr/engine.js'></script>

 <script type='text/javascript' src='<%=webContext%>/dwr/util.js'></script>

 <script type='text/javascript' src='<%=webContext%>/webapp.js'></script>

 <script type='text/javascript' src='<%=webContext%>/dwr/interface/timeInfoJavaBean.js'></script>

 </head>

<body bgcolor="#ffffff">

   <a href="#" onclick="javascript:showTime()"> 点击我可以获得当前的时间

   </a><br />

   <a href="#" onclick="javascript:getSystemTime()"> 点击我可以获得系统当前的时间

   </a>

 

    <br /><br />

   <a href="#" onclick="javascript:setTimeInfoVOBean_ToServerMethod()">

点击我可以实现向服务器传递参数(TimeInfoVOBean)

   </a>

</body>

</html>

7、再部署并执行本应用

(1)输入http://localhost:8080/DWRWebTest/index.jsp

(2)点击上面的“点击我可以对TimeInfoVOBean进行操作” 超链接,将出现下面的状态

       说明,已经将DWR 已经将JavaScript中的对象转换为我们自己定义的Java对象。同时在浏览器中出现下面的结果的提示

  评论这张
 
阅读(172)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018