有了解 Ext.XTemplate 和 DWR 长连接 的吗 ?来帮我看下几个问题

问题描述

dwr.xml 部分<dwr> <allow> <create creator="spring" scope="application" javascript="Chat"> <param name="beanName" value="messageAction" /> </create> <convert converter="bean" match="XX.Message" /> <convert converter="bean" match="XX.Role" /> </allow></dwr>Action 部分 WebContext wctx = WebContextFactory.get(); String currentPage = wctx.getCurrentPage(); Collection<ScriptSession> sessions = wctx.getScriptSessionsByPage(currentPage); ScriptProxy s = new ScriptProxy(sessions); s.addFunctionCall("receiveMessages", msg, role);msg和role 就是两个实体类对象了 ,作为参数传到页面上的receiveMessages方法 。问题1:比如 Message有个属性是个实体类 Question , 怎么设置都没法set ,msg.setQuestion(Question 的实体类对象); 说Question 未反转之类的错误,我在dwr.xml加了 Question 也还是报错,希望可以解释一下 。页面部分 function receiveMessages(msg,role) { var chatlog = Ext.getCmp('chatlog'); var tpl = new Ext.XTemplate( '<tpl if="type == 2">', '<tpl if="this.parseLegionName() == legionName">', '<p>{legionName}<a class="juntuan" href="#" onclick="showReceiver();">{sender}</a>: {content:this.parseContent}</p>', '</tpl>', '</tpl>', { compiled : true, parseContent : function(content) { return Ext.util.Format.nl2br(Ext.util.Format.htmlEncode(content)); }, parseLegionName : function() { return legionName='${Session ["role"].legionName?default('数据异常')}'; } } ); tpl.append(chatlog.body, msg); tpl.append(chatlog.body, role); } Message的属性 sender , Role的属性legionName 。问题2 : '<tpl if="this.parseLegionName() == legionName">', 这个不起作用 ,输出内容只输出 {sender} , {legionName}出不来 。如果把输出内容不做判断 减少为 '<p>{legionName}<a class="juntuan" href="#" onclick="showReceiver();">{sender}</a>: {content:this.parseContent}</p>',输出的结果变成了: (sender 的值) : 加内容 //一行 (legionName的值) : 不加内容 //;另外一行明明是在同一个<p>标签里面,怎么换成两行输出,跟什么有关我不清楚 。问题3:输出内容的 A标签的 onclick方法 不能带字符串参数,数字可以,是我未进行转义吗 ?onclick="showReceiver('{sender}'); 不行

解决方案

2、 出现2行是应该你append 2次照成的。'<tpl if="this.parseLegionName() == legionName">' 就要看你的parseLegionName返回值是否等于 Role的属性legionName 值。因为第一次tpl.append(chatlog.body, msg); 的时候msg没有legionName 属性会出现错误。你可以改成 tpl.append(chatlog.body, Ext.applyIf(msg,role));3、字符串需要加 冒号或者双引号。'{sender}' "{sender}"

时间: 2024-09-28 20:54:07

有了解 Ext.XTemplate 和 DWR 长连接 的吗 ?来帮我看下几个问题的相关文章

求助-哪位好心人帮我看下代码吧,深度遍历搜索图的,有点长,麻烦看下吧

问题描述 哪位好心人帮我看下代码吧,深度遍历搜索图的,有点长,麻烦看下吧 //深度遍历搜索图 #include #include #define MAX_VERTEX_NUM 3 typedef enum {DG,DN,UDG,UDN} GraphKind;//图的类型 typedef int OtherInfo; //弧的信息,如权 typedef char VertexData;//图结点的内容为char typedef struct ArcNode { int adjvex; struct

spring 的问题!困饶我很长时间了,谁能帮我解决下,谢谢!

问题描述 我不知道我在哪里出了问题,但是总是出错,说我的数据引入类型不对,请大家帮下我,下面是我的代码:控制台报的错误为:2008-8-18 23:21:23 org.apache.catalina.core.ApplicationDispatcher invoke严重: Servlet.service() for servlet jsp threw exceptionjava.lang.NumberFormatException: For input string: "name"at

关于dwr长连接的问题

问题描述 我做了一个只有一个页面的简单的dwr即时聊天程序,在此页面里的onload里加入了dwr反转的代码dwr.engine.setActiveReverseAjax(true);,问题出现了,如果不加此代码一切正常,加了之后页面就会不停的请求后台,ie的状态栏上的进度条一直保持与服务器连接状态,而且选项卡上的ie图标也不停的刷,等一次连接完了紧接着又练一次,无限循环,我后来在web.xml里加了dwr的初始化配置<param-name>timeToNextPoll</param-n

大家帮我看下这段用jdbc连接Oracle10G数据库的代码运行时会抛出异常,是怎么回事呢

问题描述 importjava.sql.*;publicclassFirst{publicstaticvoidmain(Stringargs[]){try{Class.forName("oracle.jdbc.driver.OracleDriver");Connectionct=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl","system","sy

jmx-【防火墙已关闭】帮看下JMX本地Main方法连接取Broker报错

问题描述 [防火墙已关闭]帮看下JMX本地Main方法连接取Broker报错 **帮我看下JMX本地Main方法连接取Broker报错 (No broker is found at any of the 1 configured urls)** JConsole通过jmxrmi连接 service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi本地正常 activemq.xml配置 <!-- Licensed to the Apache Software

关于dwr消息推送长连接问题

问题描述 如何维护dwr的长连接,如果重启tomcat不想刷新页面,如何建立与dwr的长连接呢? 问题补充:aronlulu 写道 解决方案 引用怎么检查dwr的长连接是否断开啊? 直接默认一段时间没响应就算断开啊.解决方案二:引用我现在 准备用js轮询服务器,但是在tomcat关闭的时候没有想到判断当前连接已经断开的方式,js轮询服务器采用的是ajax的方式,server端不能回应(tomcat关闭时),导致ajax请求有去无返,也就无法取得连接状态. ajax不是有timeout的设置么,超

Web 通信 之 长连接、长轮询(long polling)

基于HTTP的长连接,是一种通过长轮询方式实现"服务器推"的技术,它弥补了HTTP简单的请求应答模式的不足,极大地增强了程序的实时性和交互性. 一.什么是长连接.长轮询? 用通俗易懂的话来说,就是客户端不停的向服务器发送请求以获取最新的数据信息.这里的"不停"其实是有停止的,只是我们人眼无法分辨是否停止,它只是一种快速的停下然后又立即开始连接而已. 二.长连接.长轮询的应用场景 长连接.长轮询一般应用与WebIM.ChatRoom和一些需要及时交互的网站应用中.其真

长连接-c#腾讯企业邮箱二次开发实现新邮件提醒

问题描述 c#腾讯企业邮箱二次开发实现新邮件提醒 新邮件提醒,需要维持长连接,图片是API文档关于长连接的描述, 但是我获取到token,传入参数ver=0,返回错误,无效的请求,有做过这个功能的吗,求助啊!! private bool GetPostData(string url, string pars, ref string json) { System.GC.Collect(); //url=请求的地址,pars= "var=0" string ret = "&quo

ExtJs2.0学习系列(11)--Ext.XTemplate

XTemplate是Extjs里面的模板组件. 下面我们看个最简单的例子. 效果图: js代码: Ext.onReady(function(){ //数据源 var data={ name:"博客园", read:[{ book:'<<道不远人>>', date:'2007-7-7' },{ book:"<<大话设计模式>>", date:"2006-6-6" }] } //呈现组件 var myp