zoukankan      html  css  js  c++  java
  • DWR

    什么是DWR?它有哪些功能?  [中]  

    DWR(Direct Web Remoting)是一个WEB远程调用框架.  
    可以在客户端利用JavaScript直接调用服务端的Java方法并返回值给JavaScript  
    DWR根据Java类来动态生成JavaScrip代码.  
    支持Dom Trees,支持Spring,支持commons-logging  
    dwr.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE dwr PUBLIC  
        "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"  
        "http://getahead.org/dwr/dwr20.dtd"> 
    <dwr>
    <allow>
    	<create creator="new" javascript="MsgPush">
           <param name="class" value="com.middleware.dwr.MsgReverseAjax"/>
        </create>
    </allow>
    </dwr>
    

     方法里调用

    public static void pusMessage(TE_MESSAGE_ALERT message){
    		String org_coad = message.getRECEIVE_ORG();
    		String af = "pushMessage";
    		String type = "null";
    		Map<String,String> map = new HashMap<String,String>();
    		Message m = null;
    		map.put("id",message.getMESSAGE_ID()+"");
    		map.put("event_id", message.getEVENT_ID());
    		map.put("type", message.getEVENT_TYPE());
    		map.put("title", message.getEVENT_TITLE());
    		map.put("org_coad", org_coad);
    		map.put("if_handle", message.getIF_HANDLE());
    		map.put("handle_id", message.getHANDLE_ID());		
    		m = new Message(org_coad,type,af,map);
    		MsgReverseAjax mra = new MsgReverseAjax();
    		mra.update(m);
    	}
    

     MsgReverseAjax.java 执行

    package com.middleware.dwr;
    
    import java.util.Date;
    import java.util.List;
    
    import org.directwebremoting.ScriptBuffer;
    import org.directwebremoting.ScriptSession;
    
    public class MsgReverseAjax {
    
    	private UScriptSessionCache ussc = UScriptSessionCache.getInstance();
    	
    	public MsgReverseAjax() {
    
    	}
    
    	public void update(Message m) {
    		List<ScriptSession> list = ussc.all();
    		if (list != null && list.size() > 0) {
    			System.out.println("time : " + new Date().getTime() + " , push list "+list.size());
    			for (ScriptSession ss : list) {
    				String msg = m.getMesage();
    				ss.addScript(new ScriptBuffer()
    							.appendScript(m.getAjaxFunction())
    							.appendScript("(").appendData(msg)
    							.appendScript(");"));
    			}
    		}else{
    			System.out.println("no scriptsession in cache");
    		}
    	}
    	
    
    }
    
    //推送信息
    function pushMessage(message) {
    	var json_message = eval('(' + message + ')');
    	//判断是否为当前机构的
    	var org_coad = json_message.org_coad;
    	if(org_coad == get_login_detail().subc_id){
    		//当前是否有未读通知
    		var count = $("#message_alert_count").html();
    		var tr_html="<tbody><tr id='"+json_message.id+"' event_id='"+json_message.event_id+"' type='"+json_message.type+"'><td style='text-align: left;cursor:pointer'>"+json_message.title+"</td></tr></tbody>";
    		if(count == '0'){//无数据
    			var html = "<table class='table_style' id='message_table' style='width="%100"'>";
    			html+=tr_html;
    			html+="</table>";
    			$("#message_alert_info").html(html);
    			$("#message_alert_count").html('1');
    		}else{//存在数据
    			//获取所有通知数据
    			var all_html = $("#message_table").html();
    			all_html = tr_html + all_html;
    			$("#message_table").html(all_html);
    			//通知数量+1
    			$("#message_alert_count").html(Number(count)+1);
    		}
    		//如果当前机构是中心
    		if(org_coad == '0001'){
    			
    		}else{//修改审阅状态
    			if(json_message.if_handle == '1'){//调度信息
    				$("#view_button_"+json_message.handle_id).html("(已审阅)");
    			}else{//非调度信息
    				if(json_message.type == '2'){//交通肇事
    					$(".traffic_accident_view_"+json_message.event_id).html("(已审阅)");
    				}else if(type == '3'){//交通阻塞
    					$(".view_block_id_"+json_message.event_id).html("(已审阅)");
    				}
    			}
    		}
    	}
    }
    

      

  • 相关阅读:
    diary and html 文本颜色编辑,行距和其它编辑总汇
    bash coding to changeNames
    virtualbox ubuntu 网络连接 以及 连接 secureCRT
    linux 学习6 软件包安装
    linux 学习8 权限管理
    vim 使用2 转载 为了打开方便
    ubuntu
    linux 学习15 16 启动管理,备份和恢复
    linux 学习 14 日志管理
    linux 学习 13 系统管理
  • 原文地址:https://www.cnblogs.com/pureEve/p/6428107.html
Copyright © 2011-2022 走看看