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("(已审阅)");
    				}
    			}
    		}
    	}
    }
    

      

  • 相关阅读:
    Java如何编写自动售票机程序
    install windows service
    redis SERVER INSTALL WINDOWS SERVICE
    上传文件
    This problem will occur when running in 64 bit mode with the 32 bit Oracle client components installed.
    解决Uploadify上传控件加载导致的GET 404 Not Found问题
    OracleServiceORCL服务不见了怎么办
    Access to the temp directory is denied. Identity 'NT AUTHORITYNETWORK SERVICE' under which XmlSerializer is running does not have sufficient permiss
    MSSQL Server 2008 数据库安装失败
    数据库数据导出成XML文件
  • 原文地址:https://www.cnblogs.com/pureEve/p/6428107.html
Copyright © 2011-2022 走看看