DWR实例总结

来源:互联网 发布:斗鱼不承认淘宝鱼丸 编辑:程序博客网 时间:2024/05/16 23:34

DWR实现的效果就是类似于ajax,实现和后台交互而不刷新页面,实现DWR,有一下步骤:

1.页面引入三个JS:

<script type='text/javascript' src='dwr/interface/DWROperator.js'></script>
 <script type='text/javascript' src='dwr/engine.js'></script>
 <script type='text/javascript' src='dwr/util.js'></script>

这三个JS不是实际存在的,至少在我这里没有,而是有个dwr3.0.jar,应该是这个jar包的作用, 必须像以上一样引入三个JS

2.页面运用:

function initAction(){
   var processDefName = dwr.util.getValue("processDefName");
   var activityDefName = dwr.util.getValue("activityDefId");
   var nextActivityDefName = dwr.util.getValue("nextActivityDefId"); 
   
   DWROperator.queryActivityRoles(processDefName + "@@" + activityDefName + "@@" + nextActivityDefName, function(data) {
    dwr.util.removeAllOptions("receiveRole");
       dwr.util.addOptions("receiveRole",data);
   });
  }

说明:processDefName:控件id,receiveRole:也是id

  DWROperator自己创建的类,queryActivityRoles是DWROperator里面的方法(而且不是静态的)

3.  DWROperator.java

@RemoteProxy
public class DWROperator {
 /*
  * DWR操作类,实现ajax功能
  * */
 
 private static final Logger log = Logger.getLogger(DWROperator.class);
 
 private User user = UserManager.getInstance().getUserBySessionId(ServletActionContext.getRequest().getRequestedSessionId());
 
 /*
  * 获取活动参与者角色列表
  * params:
  *   processDefName@@activityName@@nextActivityName
  * return:
  *   接单人角色列表
  * */
 public String[] queryActivityRoles(String params){
  String[] paramArray = params.split("@@");
  if(paramArray.length < 2){
   return new String[0];
  }
  ActiveRoleMgr roleMgr = new ActiveRoleMgr();
  List<String> rolesList = roleMgr.queryNextActivityRoles(paramArray[0], paramArray[1], paramArray[2]);
  if(rolesList == null || rolesList.size() == 0){
   return null;
  }
  
  String[] array = new String[rolesList.size() + 1];
  array[0] = "--请选择--";
  for(int index = 0; index < rolesList.size(); index++){
   array[index + 1] = rolesList.get(index);
  }
  
  return array;
 }

}

queryNextActivityRoles()是查询数据的方法,这里不再写了

4.dwr.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN" "http://getahead.org/dwr/dwr30.dtd">

<dwr>

  <allow>
    <filter class="org.directwebremoting.filter.AuditLogAjaxFilter"/>

    <!-- intro - for the test on index.html -->
    <create creator="new">
      <param name="class" value="com.metarnet.cssf.common.DWROperator"/>
    </create>
  <convert converter="bean" match="com.metarnet.cssf.model.User"/>

</allow>

</dwr>

5.dwr.3.0.jar在我的资源里,可以下载

以上就可以实现DWR类似于ajax的操作

 

 

 

 

 

 

 

 

原创粉丝点击