对一般的基于J2EE的系统,用户界面(UI)总不是很健壮,这里我们提供了一个使用Java Plug-in的解决方案:使用applets来解读XML文档中的数据,并按要求显示出它们,XML文档由servlet产生
标签,你不能在表格中做到滚动、选择某一行、编辑等操作。你不可能做到让他看起来就象一个电子表格,用户可以执行各种复杂的表格操作.还有当你需要一个层次化的树型列表,可以进行折叠、扩展、拖进、拖出、对节点改名或删除等操作,这些HTML都做不到
当然你可以使用HTML 或DHTML来实现实现一些简单表单和树行为操作,比如使用checkbox来实现行选择.而DHTML呢,难于编写和维护,在发布时也会因浏览器的不同而产生错误.很明显Java applet应该是最好的选择,但如何使用它,怎样把它良好的整合到J2EE的结构中呢?
在J2EE的教程中,SUN公司简单的提到在web客户中使用applet,但更多讲述的是servlet和JSP,因为它们不需要任何插件,SUN特别指出了使用JSP来产生XML文档,XML数据是应用于Web serviced的标准的机读数据,这点很重要.
但是在这篇文章中,我们要介绍的是使用applets来嵌入展现层,它需要使用一个由web 组件(JSP或SERVLET)产生的XML文档作为资源文件,这样就不需要你的applet通过RMI/IIOP来访问远程的EJB,而是直接访问本地的XML文档.
展现层数据:
各节点的名称、节点是否是文件夹、个节点的内容,这些数据多少很象JTree在它的TreeModel所需的数据,你可以把这些数据用XML来表示,如下:
你可以继续为各节点添加内容,比如加上节点的图标、它所代表对象的hyperlink以及它代表的对象类(比如现金或日期)
使用applet
Figure 1.
在JSP中可以使用标准的HTML标签或者JSP中的,后者是使用Plug-in模式运行你的applet,它可以让你指定特定的JVM,而不是默认的浏览器使用的JVM,这样可以让浏览器应用最新的Java API。(是使用Java Plug-in有一些缺点:用户不得不下载超过9 MB的插件)
状态改变:
和一个子节点
对这种改变,使用如下的一个URL调用来通知系统
http://localhost:8080/tree/node-moved?node-id=7&destination-folder-id=5
使用java.net.URL的openStream()方法来请求该URL,该URL然后把请求由servlet转为session bean的方法调用,进行该删除操作,如果调用成功后,session bean返回如下的一个文档:
在接到该文档后,客户端执行操作,把这些节点从TreeModel中删除,如果服务端调用失败,则返回下列一个文档
客户端接收次消息后使用状态消息或对话框报出错误,显示整个过程
Figure 2. Process of an applet firing state changes |||
最佳实现
产生尽可能简单的XML的格式
使用轻量级的SAX解析器
别去校验XML
只返回你需要的数据 要节省下载时间,你应该只返回一些你需要的数据,比如在返回JTree的数据库时,不一定要把所有的数据库都同时下载,对一些较大的描述你可以在展开某个节点时再下载,加上如下的一个data-link:(这样可以减少加载applet的时间)
又比如对JTable,你只需要加载现在说需要的数据,比如前50行,如果用户要求,再加载后50行
只为那些必须使用applet的地方使用它们
小结:
请查看的范例来增强理解
Jeremy Dickson has been writing Java code for the past five years in the domain of bioinformatics and life science. He is currently a senior developer at the life science-solutions provider Viaken Systems, working on enterprise Java solutions to data integration problems. Formerly, he has worked on everything from JavaBean components for displaying genetic maps to EJB-based server-side platforms for project management.
温馨提示:因考试政策、内容不断变化与调整,长理培训网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!
(责任编辑:长理培训)
长理培训微信公众号
每日推送精彩考试资讯
长按二维码识别
微信搜索“
长理培训 ”
加入QQ群一起来考国网!
QQ群号:223940140
点击进入
点击加载更多评论>>