- 浏览: 49381 次
最新评论
-
ljf_home:
想法很不错。
一个云计算的构想 -
lizhi:
Libcloud 可以实现类似功能
一个云计算的构想 -
highill:
浏览器的兼容性问题和性能问题 需要很长时间来解决,中间有很多 ...
强大的HTML5 -
9310974aa:
非常感谢楼主!~~~
J2ME手机编程心得(四) -
longphoenix:
yangyi 写道互联网将更有用了,但是将更不安全了
确实啊 ...
强大的HTML5
早就关注过OpenLaszlo这个开源的RIA的东东了,感觉做出的界面还是比较美观的,但由于时间原因一直都没有亲自尝试使用,正好前几天有个小的需求,所以就拿来进行一下实验,看看效果如何。
由于公司用的服务器都是apache+resin的,在网上找了很久,也没有找到关于openlaszlo与resin整合的资料。不过好在J2EE标准针对每个J2EE容器应该还是差别不大的。于是下载完了完整的for unix的版本以后,直接把下边的WEB-INF和lps目录copy出来,在resin里面建立一个webapp,将这两个文件夹复制进去。 然后启动resin。
写一个最简单的lzx文件,内容如下:
<canvas>
<text>Hello,world!</text>
</canvas>
直接在浏览器浏览http://localhost:8080/laszlo/main.lzx
这时如果浏览器出现了一个空白的flash,并且左上角有"Hello,world"的字,说明配置已经成功了。
如果提示错误,就得查看一下自己的配置了,如果是一个全新的Resin问题可能不会很大,但如果是已经跑了应用的resin,lib下面有一些常用的jar,就可能会出问题了,有时会出现xml解析器相关的错误,这有可能是xercesImpl这个包活着是Jdom的版本过低造成的,换上一个最新版本应该就会OK。
再写一个带窗口的程序:
<canvas>
<text>Hello,world!</text>
<window x="10" y="10" width="400" height="300" title="测试" font="宋体" fontsize="14">
</window>
</canvas>
再浏览一下,很可能会出现如下的错误:
Compilation Errors
base/basecomponent.lzx:50:1: Syntax error: the token "{" was not expected at this position.
不知道是否还是xml解析器的问题,打开base/basecomponent.lzx文件,找到提示的第50行,发现这里的属性值中间有换行符,所以可能解析出错了。将属性的值中间的换行删掉,再刷新页面,又发现另外一个地方一样的这样的提示,再找到修改,就这样一直找一直改,提示哪个文件就修改哪个文件,最后终于出现了期待已久的页面。不过这样的工作量实在很大,而且解决的不彻底,但目前我还未找到有效的办法解决,只好用这种笨方法暂时解决一下了,有谁知道如何解决这个问题的就拜托指点一下了。
经过千辛万苦,还好终于把环境和程序都调试通过了,感觉界面很清爽,而且比普通的html页面使用起来也方便,数据的请求和提交也不用再刷新页面了。这样比普通的ajax效率更高,而且支持更好,用IE和firefox都测试OK。事实上只要是支持Flash的浏览器应该都会支持的不错。
另外,运行了一段时间以后,可能会出现out of memory的错误,这是由于分配给jvm的内存不够了,可以通过类似./httpd.sh -Xms128m -Xmx256m 的方式启动resin,这样基本上就会解决。
另外,中文显示的问题,如果将lzx文件保存成UTF-8格式显示的中文就没有问题了,否则中文会是乱码的。
研究了两天的时间,大概也了解了openlaszlo的运行方式、数据绑定和更新等一系列的东东,感觉这个东西还真的是比较强大。只是目前国内似乎做这方面开发的非常少,资料也不怎么好找,所以遇到问题只好去查english的帮助文档了。不知以后是否会有更多的人来支持这个强大开源的RIA解决方案。
最后献上做的那个小应用的源码:
很简单,首先登录,然后根据手机号或者用户ID查询用户信息:
<canvas>
<window name="loginWin" width="300" height="230" x="350" y="700" font="宋体" fontsize="14" title="登录窗口">
<animator attribute="y" to="180" duration="1500"/>
<method event="oninit">
</method>
<view id="msgView" x="70" y="15">
<text id="message">输入用户名密码登录</text>
</view>
<view x="50" y="50">
<simplelayout axis="y" spacing="10"/>
<view>
<simplelayout axis="x" spacing="10"/>
<text>用户名</text>
<edittext id="username"></edittext>
</view>
<view>
<simplelayout axis="x" spacing="10"/>
<text>密 码</text>
<edittext id="password"></edittext>
</view>
<view>
<simplelayout axis="x" spacing="30"/>
<button isdefault="true" onclick="check()">登 录
</button>
<button>取 消
<method event="onclick">
canvas.loginWin.close();
</method>
</button>
</view>
</view>
</window>
<script>
function check(){
var ds = canvas.datasets.login;
var p = new LzParam();
p.addValue("u",username.getText());
p.addValue("p",password.getText());
ds.setQueryString(p);
ds.doRequest();
Debug.write("login..." + username.text + " " + password.text);
}
</script>
<dataset type="http" name="login" querystring="u=xiaowei&p=xiaowei" src="login.jsp" request="false"/>
<datapointer xpath="login:/result">
<handler name="ondata">
<![CDATA[
Debug.write("recv data...");
var result = this.xpathQuery("*/text()");
Debug.write("result=" + result);
if(result != "OK")
{
msgView.setX(100);
message.setText(result);
}else
{
msgView.setX(100);
message.setText("<font color=\"#00FF00\">登录成功!</font>");
canvas.loginWin.animate("y",900,1500,false);
canvas.dataWin.setVisible(true);
canvas.dataWin.myAnimator.doStart();
}
]]>
</handler>
<handler name="onerror">
<![CDATA[
Debug.write("on error");
]]>
</handler>
</datapointer>
<dataset name="user" src="query.jsp" request="true" type="http"/>
<window name="dataWin" x="200" y="900" width="500" height="400" title="查询邦号" font="宋体" fontsize="14">
<animator name="myAnimator" attribute="y" to="120" duration="1500" start="false"/>
<method event="oninit">
this.setVisible(false);
</method>
<view x="10" y="20" width="500" height="50">
<simplelayout axis="x" spacing="10"/>
<text>查询方式</text>
<combobox id="q_type" editable="false" font="宋体" fontsize="14">
<textlistitem font="宋体" fontsize="14" text="userid"/>
<textlistitem font="宋体" fontsize="14" text="mobile"/>
</combobox>
<text>输入号码</text>
<edittext id="number" width="120" height="22"></edittext>
<button isdefault="true">查 询
<method event="onclick">
<![CDATA[
var p = new LzParam();
Debug.write(q_type.getValue());
p.addValue("type",q_type.getValue());
p.addValue("value",number.getText());
user.setQueryString(p);
user.doRequest();
]]>
</method>
</button>
</view>
<view x="10" y="70" width="500" height="50">
<simplelayout axis="x" spacing="10"/>
<grid datapath="user:/users/">
<gridtext datapath="@userid" sortable="true" sortpath="@userid" editable="false" text="用户邦号"/>
<gridtext datapath="@passwd" sortable="true" sortpath="@passwd" editable="false" text="用户密码"/>
<gridtext datapath="@name" sortable="true" sortpath="@name" editable="false" text="昵称"/>
<gridtext datapath="@mob_num" sortable="true" sortpath="@mob_num" editable="false" text="手机号码"/>
<gridtext datapath="@bind" sortable="true" sortpath="@bind" editable="false" text="绑定情况"/>
</grid>
</view>
</window>
</canvas>
发表评论
-
强大的HTML5
2010-02-23 09:50 2258前些天看了一些HTML5方面的资料,感觉 ... -
网站安全不可忽视--一个收费网站的破解过程
2004-10-07 09:23 1169某日在网上偶然打开一个网站,是有PLMM与你视频聊天的,但是要 ... -
教你用VC6做QQ对对碰外挂程序
2005-02-26 14:45 1081前段时间跟以前的同事玩QQ游戏对对碰,结果输的 ... -
用VC实现发送和接受短信
2005-04-14 01:48 3160前些日子感觉得练习一下VC了,所以就有想,平时发短信那 ... -
J2ME手机编程心得(一)
2006-01-18 09:05 899自学J2ME也有一段时间了,总觉得应该把自己学习的心得与 ... -
J2ME手机编程心得(二)
2006-01-18 09:06 1110J2ME的环境配置好了,现在就开始写我们的第一个J2ME的 ... -
J2ME手机编程心得(四)
2006-01-18 09:07 1514上一个贪吃蛇的游 ... -
J2ME手机编程心得(三)
2006-01-18 09:07 1187上一次已经做完了第一个简单的J2ME程序,但是可能大家最 ... -
Weblogic9.0的破解方法
2006-01-18 09:09 1153weblogic9已经出来了,在官方网站可以下载到试用版 ... -
利用J2ME制作你自己的网络相册
2006-01-21 11:52 1031现在越来越多的手机都支持拍照功能,但是各种型号的手机 ... -
Spring的IOC在J2EE项目中的应用
2006-03-06 17:28 1154前些天大概学习了一下Spring的IOC,感觉还是很方便的 ... -
自做代码生成器(一)介绍
2006-08-03 18:43 1137对数据库的操作中间,不同的地方无非是各个字段的信息,比如 ... -
自做代码生成器(二)规则格式定义
2006-08-03 18:45 1581首先是数据表和java类之间的转换规则,数据库以orac ... -
自做代码生成器(三)动手写代码
2006-08-03 18:46 1240定义好规则和配置格式,就可以开始动手写代码了,首先,需 ... -
自做代码生成器(四)举例实践
2006-08-03 18:47 1327我们先定义一个数据表的xml文件,比如系统用户的表sys ... -
resin3.1处理utf-8格式的jsp时存在的问题
2008-11-05 16:48 6438以前一直使用resin-3.0.x作为服务器,最近想升 ... -
一个网站性能的问题,寻求帮助!
2008-06-27 16:40 2533网站是一个wap站点,负责将用户访问的web站点的页面转换成为 ... -
一个数据层的设计与实现,大伙帮忙看看是否可行,谢谢!
2007-04-20 20:17 4106这里我没有使用Hibernate,我一直都嫌Hiber ...
相关推荐
### OpenLaszlo:领先的开源富互联网应用开发平台 #### 一、项目概述与历史 OpenLaszlo 是一个开放源代码平台,旨在为全球范围内的互联网提供丰富的应用程序开发及交付服务。它由 Laszlo Systems 公司于 2001 年...
LZX的灵活性在于它可以编译为Flash或JavaScript,这意味着OpenLaszlo的应用程序可以在多种浏览器和操作系统上运行,包括桌面和移动设备。 手册中的"labs.openlaszlo.org"可能是一个指向OpenLaszlo官方实验室的链接...
OpenLaszlo —— 一个快速构建和部署富 Internet 应用程序的平台 -- Linux,C,C++,Java,Ajax,XML,perl,php,python,ruby,MySQL,Gnome,KDE,Qt,Gtk,bash,shell,嵌入式,网络,信息安全,操作系统,数据结构,编译原理
Applet和Openlaszlo是两个在Web开发领域中用于创建动态、交互式用户体验的技术。本文将深入探讨这两个概念以及它们之间的通信机制。 首先,Applet是Java编程语言的一个组成部分,它允许开发者创建可以在Web浏览器中...
openlaszlo应用程序开发使用的是基于XML的LZX语言,它可以被编译成DHMTL,SWF等格式。 openlaszlo可作为openmeetings客户端的编译。 因安装程序90+MB,所以切分为两个压缩包。 openlaszlo-4.9.0-windows-dev-install....
openlaszlo应用程序开发使用的是基于XML的LZX语言,它可以被编译成DHMTL,SWF等格式。 openlaszlo可作为openmeetings客户端的编译。 因安装程序90+MB,所以切分为两个压缩包。 openlaszlo-4.9.0-windows-dev-install....
openlaszlo应用程序开发使用的是基于XML的LZX语言,它可以被编译成DHMTL,SWF等格式。 是openmeetings视频会议系统的默认开发编译工具。
这是用Openlaszlo开发的计算器程序,可以实现基本的计算操作。 我是刚学openlaszlo,欢迎朋友们提出宝贵意见!
LZX文件在Laszlo Presentation Server (LPS)上运行,该服务器将LZX编译为Java Servlet,能够在Java Servlet容器中运行。OpenLaszlo Server是一个完整的解决方案,包含了LPS和Tomcat,使得Laszlo应用能够无缝集成到...
这种跨平台的特性使得OpenLaszlo成为那些希望其应用能在各种设备和操作系统上运行的开发者的理想选择。 在"lps-4.9.0-src"这个压缩包中,很可能是OpenLaszlo的源代码文件,版本为4.9.0。源代码的获取意味着开发者...
使用OpenLaszlo构建J2EE中的RIA程序,高春阳,龚群侃,当前,Web 应用程序就要进入了一个新的时期,富互联网客户端(RIA ,Rich Internet Application) 以其极大地用户交互性、优秀的外观设计、良好��
这意味着OpenLaszlo已经成功部署到了Tomcat服务器上。 ##### 2.2 运行示例LZX文件 - 在浏览器中输入以下URL:`http://localhost:8080/openlaszlo-3.3.3-servlet/my-apps/copy-of-hello.lzx?lzt=html`。稍等片刻后...
在技术开发部分,手册探讨了OpenLaszlo的语法结构,包括两种部署方式、组件系统、事件处理、约束机制和动画。特别是动画标记的使用,如,为创建复杂的动画效果提供了可能。数据绑定特性和远程过程调用(RPC)的介绍...
OpenLaszlo结合了XML和脚本语言,允许开发者使用单一的源代码在Flash和HTML5之间进行部署。Spket对OpenLaszlo的支持意味着开发者可以享受到与JavaScript同样的代码辅助功能,如智能感知、代码导航和重构,这使得...
它是在 LZX (OpenLaszlo) 上开发的,因此它向用户的浏览器提供 dhtml 或 flash,从而提供在它们之间进行选择的机会,但只有一个服务器的源代码。版本遵循 [语义版本规范] ( ) 当前版本 > 1.5.0作者
PhMeetings是基于开源WEB视频会议系统OpenMeetings开发的一个实验性...由于资料的缺乏以及对OpenLaszlo编程的陌生,其中艰辛不足为外人道。今日发一声感慨:如果你想折磨一个程序员,那就让他去干开源软件的二次开发!
正如文章所述,OpenMeeting的二次开发之路充满艰辛,尤其是在对OpenLaszlo编程不熟悉的情况下,整个过程更是困难重重。 #### PhMeetings:OpenMeeting的商业版 PhMeetings是基于OpenMeeting开发的一款实验性商业...
本文基于开源BI平台Openi的数据仓库系统进行了整体设计与开发,重点介绍了商业智能系统的基本概念、当前市场趋势以及具体的系统设计细节。通过这样的设计与开发,旨在为企业提供一个高效、灵活的数据分析平台,帮助...
总的来说,"huoyan.zip_火焰识别c++"这个项目涵盖了C++编程、API接口使用、图像处理、计算机视觉、可能的机器学习应用,以及与富互联网应用开发平台OpenLaszlo的结合。对于想要深入理解和实践这些领域的开发者来说,...
【Laszlo 与 Web 应用】 Laszlo 是一个开源项目,它遵循 GNU General Public License (GPL) 协议。该项目的核心是 LZX 文件,这...在实际开发中,可以根据具体需求调整配置,优化性能,以及解决可能出现的兼容性问题。