初探dorado

阅读更多
刚刚接到bstek从上海打过来的电话面试,问了我一些框架以及相关的一些问题。唉,大概是已经有近一个月没怎么写java了,再加上雨后的广州竟异常地 冷,回答的时候竟有些发颤。最后被告知先了解一下他们的dorado,过一两天再电话联系。好吧,就看看dorado是怎么一件产品(也怪我,投了人家简 历居然没研究人家的产品)。

1.安装
首先是安装dorado。运行setup.bat文件即可。它会去检测JAVA_HOME以及JDK版本,然后进行dorado运行包及第三方运行包的复 制,最后修改了两个配置文件——datasource.xml和user-config.xml。看了里面的内容,应该是修改了dorado的图片路径以 及使用的HSQLDB数据库的路径。汗,俺没用过HSQLDB,甚至没听说过它,Derby也是这几天才看的。
关 于dorado使用的JDK有没有限制,暂时不知道。虽然dorado使用的是apache-tomcat-5.5.17,按理应该必须使用JDK1.5 或以上才行,可是我使用了JDK1.4.2_11以及JDK1.5.0_06其运行都没有问题,运行dorado studio也没有问题。估计是他们修改了一些启动包,使得JDK1.4以上的就可以运行了了。

2.启动dorado studio
安装完后,会在当前的目录下生成一个dorado studio的快捷方式。运行dorado studio。


dorado例子分析
View
以TestPerformance2 的View为例子吧。可以看到里面分了三个文件夹:Datasets、Controls、Properties。Datasets里面放着一个 Dataset1,其内部有一个MasterLink以及若干Field。看到这些Field,大概会想起以前玩过的VB中的Dataset。形式一模一 样。再看看Controls文件夹,里面有一个table1和dropdownSex,再对比实际页面大数据量展示,显然我们在界面看到的东西都是来自于 这个Controls里面的各个控件。这些控件通过自身的属性设置来关联上其他资源,如table1关联上dataset1。MasterLink不知道 是用来作什么的,姑且留个疑问吧。

Class
再来看看TestPerformance2的Class吧。继承自 DefaultViewModel,估计跟Struts中的Action角色类似吧。里面的东西没什么好说的,就是随机创建了2000条数据并将它们装进 了全局dataset中的dataset1里面。需要说明的一点是这些工作都放在了函数doLoadData()中,其地位大概也如Struts的 Action类的execute()函数,会被一个类似ActionServlet的拦截类进行默认调用的。
dorado studio有一点用得不爽的就是不提供对象属性及函数的浮动提示功能,需要经常地查API,如果手边没有文档,那就歇菜了。

Module
以HR这个Module为例吧。里面由若干个dataset组成。这里的dataset图标跟View中的不大一样,应该是跟数据库绑定的。他们的属性originTable证实了这一点。

JSP
看完了后台,来看看前台的JSP吧。
调试了一下JSP页面。发现dorado的JSP的架构有如下的规则:
1.< d:view >
< d:view >标签在一开始的时候输出相关的Javascript代码。主要是输出各种js工具包以及设置时间器和dorado的版权信息。
2.
< d:Layout >
< d:Layout >实际上就是table标签。用table标签来进行排版确实不错,只是没有使用div代替table感觉有点不那么赶潮流。当然,做事的不见得就要赶潮流,重要的是做出事来。
3.
< d:Pane >
< d:Pane >是一个tr。
4.
< d:DataTable >
< d:DataTable >通过属性id来指定显示哪个哪个table。实际上是输出一个空的div,然后在
< /d:View >结束处输出一个xml,以及相应的js来写进这个div里面。
至于刚才提到的那个下拉框控件也是通过xml以及js来实现的。至于为什么不使用select标签,则是因为select的层的问题,会影响浮动层的显示效果(主要是IE中,FF没有没有这个问题)。
5.字符集
需要提的一点是,这个页面居然没有使用meta显性得标注本页面使用的字符集。尽管在JSP中使用了<%@ page contentType="text/html; charset=UTF-8" %>来标注,可是我觉得还是有必要在HTML中显性的进行标注:
< meta http-equiv="Content-Type" content="text/html; charset=“UTF-8" >

你可能感兴趣的:(JSP,面试,VB,HSQLDB,Struts)