dwr 一些基础

本文介绍如何使用DWR (Direct Web Remoting) 与 Spring 框架集成,实现 Java 对象与 JavaScript 对象之间的远程调用。文章通过具体实例展示了 DWR 的配置方法、实体类转换以及前后端交互过程。

一个例子

  spring 创建的例子

   dwr.xml的配置

  <create javascript="KjdzclService" creator="spring">
     <param name="beanName" value="kjdzclService"></param>
  </create>
  <convert match="com.fulitong.framework.scjs.domain.ScjsKjdzcl" converter="bean">
    <param name="include" value="id,mcbh,mj,a,b,c,gycl,bfb,fhd,dzclhj">

   </param>

  <!-- <include method="checkZt"/>-->
  </convert>
  </allow>   上面创建的时候是利用的spring 创建的实体类

 普通创建

<dwr>
  <allow>
    <create creator="new" javascript="JDate"> //对应JavaScript文件名,即:JDate.js在这个文件中有一个名为JDate的JavaScript对象
      <param name="class" value="java.util.Date"/> //对应Java类。
    </create>
    <create creator="new" javascript="Student">
      <param name="class" value="com.dwr.test.Student"/>
    </create>
<convert converter="bean" match="com.dwr.test.*" ></convert> 
  </allow>
</dwr>

  上面service的实现类 中关联的方法

 public boolean getKjdzclByMcbhForUpdate(String bh)
   throws RuntimeException {
  // TODO Auto-generated method stub
  return this.kjdzclDao.getKjdzclByMcbhForUpdate(bh);
 }

 

 下面是dao的实现类

  /**
   * 根据煤层编号得到实体
   */
 public ScjsKjdzcl getKjdzclByMcbh(String bh) throws RuntimeException {
  // TODO Auto-generated method stub
  ScjsKjdzcl kjdzcl = new ScjsKjdzcl();
  String hql =" from com.fulitong.framework.scjs.domain.ScjsKjdzcl t where t.mcbh ='"+bh.trim()+"'";  
  List<ScjsKjdzcl> kjdzcls = (List<ScjsKjdzcl>)this.getHibernateTemplate().find(hql);
  if(kjdzcls.size()>0){
   kjdzcl = kjdzcls.get(0);
  }
  return kjdzcl;
 }

上面返回的是实体对象,因为在页面上需要调用该实体对象的属性,所以上面的dwr.xml配置中加了一个convert 转化

(个人理解 将后台的实体类转化为js 中的对象 由于时间问题没有详细多做测试)、

 

 

jsp 页面方面

 

     <script type="text/javascript" src="<%=request.getContextPath()%>/dwr/interface/KjdzclService.js"></script>
     <script type="text/javascript" src="<%=request.getContextPath()%>/dwr/engine.js"></script>
     <script type="text/javascript" src="<%=request.getContextPath()%>/dwr/util.js"></script>

 

 

 function getdata(v){
       //设置DWR为同步验证
      DWREngine.setAsync(false);
     KjdzclService.getKjdzclByMcbh(v,callBack);
     //设置DWR为同步验证
      DWREngine.setAsync(true);
  }
  function callBack(data){
    if(data.mcbh!=null){// 可以直接实体的属性名,这里的属性名应该是在后台dwr.xml中配置的param的值
     if(data.a!=null){
       document.getElementById("a").value=data.a;
      }

}

 

相同颜色的关联

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值