dwr @DataTransferObject与@RemoteProperty的应用

在<<DWR Annotation入门>>中已简单介绍了dwr的使用,对于其中涉及到的两个注解@DataTransferObject和@RemoteProperty,本文将进一步介绍

@DataTransferObject对应于原来dwr.xml文件中的convert标签,用于转换Java对象;

@RemoteProperty则对应于convert标签中的 <param name=”include” value=”" />。


本文在<<DWR Annotation入门>>基本中新建类Entity,代码如下

package model;

import org.directwebremoting.annotations.DataTransferObject;
import org.directwebremoting.annotations.RemoteProperty;

@DataTransferObject
public class Entity {
	
	private String id="";
	
	private String title="";
	@RemoteProperty
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	@RemoteProperty
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	

}

然后修改Test.java, 新建方法getEntity(Entity entity)

package model;
import org.directwebremoting.annotations.RemoteMethod;
import org.directwebremoting.annotations.RemoteProxy;

@RemoteProxy( name="test")
public class Test {
	@RemoteMethod  
	public String getString(String para)
	{
		return "return "+para;
	}
	@RemoteMethod  
	public Entity getEntity(Entity entity)
	{
	
		if(entity==null)
			entity=new Entity();
		entity.setId("return "+entity.getId());
		entity.setTitle("return " +entity.getTitle());
		return entity;
	}
}



修改配置文件web.xml, 增加classes参数的内容

<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>
        <init-param>
            <param-name>classes</param-name>
            <param-value>
           model.Test,model.Entity
            </param-value>
        </init-param>
    </servlet>

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


最后我们再来看看在jsp页面中如何使用,再下面的代码中,我们选创建js对象para,然后将para作为参数传入getEntity()

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <script type='text/javascript' src='/TestDwr/dwr/engine.js'></script>
  <script type='text/javascript' src='/TestDwr/dwr/interface/test.js'></script>
  

 <script type="text/javascript">
 
 var para={};
 para["id"]="2";
 para["title"]="3";

  test.getEntity(
 	para,//getString的参数
 	function(data){
		document.write('id:'+data["id"]+'<br/>'+'title:'+data["title"]);
	}//当getString从服务器取回数据后的回调函数,data为返回的值
 );
 </script>   
   </head>
  
  <body>

  </body>
</html>

最后,就可以运行该web程序了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值