Dorado 5 : 21.附录三 测试答案及分析 (T1)

第2章

1. B
DoradoEclipsePlugin安装之后,打开Eclipse可以直接使用插件进行开发。与Swing版的Dorado Studio相比,插件开发不仅保留了原来的开发习惯,也提供了诸如JavaScript代码提示等小功能,提高了开发的便利性。

第3章

1. AB
当页面展现正常,单击按钮控件却没有弹出窗口时,通常都是没有在按钮单击事件中编写弹出代码导致,或者已经编写而没有保存刷新所致。
页面打开空白,无按钮控件显示,通常是由于控件标签没有存在于JSP页面上,如果应用服务器没启动,页面并不能打开。

第4章

1. A
数据库方言的作用是提供dorado通过统一方式访问不同的数据库的功能,不配置数据库方言将导致dorado访问数据库时无法采用自动生成不同数据库对应SQL的方式操作,最终导致数据加载失败。
2. AC
数据库方言是一组Java类的统称,主要用于将统一的数据访问方式转换成不同的数据库SQL语句达到访问不同的数据库的目的。数据库方言使得开发人员不用考虑底层数据库的不同而编写多种对应的操作SQL语句。提高了系统的可移植性。不同的数据库方言封装了不同的数据库对应的SQL语句,因此选择相匹配的数据库方言是必须的,否则可能会导致访问数据库语法错误。

第5章

1.B
对Dataset数据的操作,是通过与之绑定的控件实现的。如果控件不绑定Dataset而执行操作只能是控件本身的操作,对Dataset数据没有任何作用影响,因此即时在同一个ViewModel中,不绑定Dataset数据集对象,无法实现任何与之有关的操作。

第6章

1. BC
在dorado中新增控件,通常首先在ViewModel中新增控件对象,然后在JSP页面中新增对应的控件标签(可通过拷贝控件或者插入标签两种方式操作),这样才是完整正确的新增控件的操作。如果只是在ViewModel中新增控件而不在JSP页面添加控件标签,页面不会显示该新增控件。
2. A
只删除ViewModel中的控件,页面仍然会显示,而只删除页面中的控件标签可以使的页面中的控件不被显示。如果删除时候,文件没有保存,那么删除将会无效,必须保存所有删除操作才会最终生效。特别地,数据绑定类控件,只在JSP页面存在控件标签时,并不能显示数据。

第7章

1. A
UpdateCommand可以新建多个DatasetInfo对象,每个DatasetInfo只能绑定一个Dataset对象并提交。

第8章

1. ABC
AutoSqlDataset中的MatchRules中的所有escapeEnabled属性值默认是false,此时AutoSqlDataset不会加载数据,主要是因为此时并没有提供参数所需要的值,但是条件仍然存在。当设置值为true时,不提供参数值时该参数会被忽略,因此可以加载出没有经过过滤的结果集。

第9章

1. C
Menu菜单对象属于页面不可见控件,本身并不能在页面展现,需要借助菜单容器对象实现在JSP页面的展现。
2. B
MenuItem子菜单项不仅可以通过手工添加方式创建,也可以通过服务器端Java编程方式动态创建。其中每个MenuItem子菜单项都可以继续新建它的下一级子菜单项。

第10章

1. A
ListDropDown中的下拉项既可以通过手工创建方式实现,也可以通过服务器端Java编程方式实现。
2. C
DatasetDropDown与ListDropDown不同,它的下拉项是通过绑定Dataset而被自动创建生成。mapValue是ListDropDown和DatasetDropDown所共有的属性。
3. CD
DynamicDropDown的下拉项实际上是引用一个JSP页面实现的,具有数据分页加载和数据过滤功能,没有mapValue属性。
4. BCD
下拉框中的readFields和writeFields属性可以很方便地将绑定下拉框的Dataset中的下拉选项绑定的记录值插入至下拉框绑定的Dataset的当前记录中,实现数据的修改。

第11章

1. AB
在AutoForm控件中,通常其中的控件元素都是通过AutoForm绑定Dataset自动生成,有时可以手工新建控件元素然后设置相关属性。AutoForm中的FormGroup也可以绑定Dataset数据集对象。
2. ABC
AutoForm中的控件和通过设置ControlAlign属性设置左中右摆放,设置ControlVAlign属性可以设置上中下摆放。

第12章

1. ABC
DataTable可以通过绑定Dataset自动生成与之对应绑定Field的Column对象。除此之外,也可以在DataTable中新建Column对象并不需要绑定Field,但是DataTable只能绑定一个Dataset。与AutoForm不同,Column并不能单独绑定其他的Dataset。
一般情况下,如果对于DataTable控件不执行auto create elements,同样可以在页面中显示每个Column中的数据,只是不能单独对某个Column对象进行控制。
2. ACD
DataTable支持鼠标左键单击和双击事件,一般设置DataTable的readOnly属性值为true时,可以很方便地使用单击双击事件实现相关业务操作。

第13章

1. C
从dorado的原理可知,ViewModel中的各种控件元素是首先在服务器端被创建出来的,当HTML/XML界面模板被返回客户端之后才被BRich Client解析并还原成各种页面可见控件。
2. ABD
当用户执行页面请求、局部数据刷新、远程方法调用等操作时服务器端都会创建相应的ViewModel 实例。我们可以通过其state属性来判断当前ViewModel在何种情况下被创建。state有下列几种取值:1)ViewModel.STATE_VIEW 打开视图状态,即用户请求一个新的视图时的状态。2)ViewModel.STATE_SERVICE 服务状态。当一个已打开的视图在执行局部数据刷新、远程方法调用等操作时的状态。3)ViewModel.STATE_DESIGN 设计时状态。该状态只有在为dorado studio提供服务时有效。4)ViewModel.STATE_UPDATING 数据提交时状态,当Dataset从客户端提交至服务器端处理时的状态。
3. AD
在ViewModel实现类被调用的常用三种状态中,init和initDatasets方法总是被调用。其中initDatasets方法在不同的状态时初始化的Dataset是不同的。
4. ABD
ViewModel对象中有三个子元素对象,分别是 Datasets,Controls,Properties。
5. ABCD
ViewModel中的Dataset共有7种。分别是:AutoSqlDataset、SqlDataset、FormDataset、DatasetReference、CustomDataset、DODataset、MarmotDataset。
6. BCD
ViewModel对象并不是一直存在于服务器端的,而是在每一次提供服务之后就会释放,生命周期属于Request类型。也就是说在每一次与客户端交互的过程中,ViewModel都会被重建。因此,尽量避免在视图模型中通过使用私有变量保存状态信息。并且它也不会在服务器端做缓存。
7. BD
Client端使用方法
getViewModel(namespace).properties().getValue(key);
getViewModel().properties().setValue(key, value);
Server端使用方法
在ViewModel中利用properties()得到MetaData对象。
this.properties().setValue(String key/int index,Object value);
在其他非ViewModel的类中使用DoradoContext对象实现ViewProperties的存取。
8. D
在Module数据坞中存在五种dataset对象,分别是 SqlDataset,AutoSqlDataset,CustomDataset,MarmotDataset,DODataset。
9. D
在Module数据坞中,每个Dataset对象都具有scope和timeout两个属性,二者结合用于设置Dataset的生命周期。
10. ABCD
数据集对象的接口是com.bstek.dorado.data.Dataset,它用来管理一组数据,其结构类似于关系型数据库中的表或视图,包含有Record对象和Field对象,数据集中的记录对象是有状态的,可标识每个Record对象在浏览器端被何种方式操作。
11. ACD
页面初始化结束,Dataset数据加载完成后,当前记录是第1条,此时isFirst是false。执行了moveFirst之后,Dataset的当前记录移动到第1条,并且把isFirst设为true。执行了moveLast之后Dataset的当前记录设置为最后1条,并且把isLast设置为true。
12. D
Dataset的flushData方法是客户端方法,主要作用是重新从服务器端加载数据至Dataset中,最终填充至客户端当前的Dataset。flushData方法执行后,对于在服务器端ViewModel状态来说是ViewModel.STATE_SERVICE状态。

第14章

1. CD
树控件中,DataTree中的Recursive TreeLevel和Simple TreeLevel以及TreeGrid都可以绑定Dataset实现动态树节点的创建。
2. BC
树形下拉框属于下拉框中的自定义下拉框,其下拉内容是一个JSP页面,树控件在该JSP页面中展现,可以在树控件中编写客户端的JavaScript脚本代码实现单击树控件获取记录值并关闭下拉框,同时获取的值可以在关闭下拉框时传递至下拉框所在的ViewModel的JSP页面中处理。由于下拉内容是页面,因此树形下拉框的实现主要是在下拉页面中的实现,并不要求采用哪种树控件实现。
3. BC
recursiveKeyParameters和recursiveKeyFields属性属于树控件的递归层控件所拥有的属性。其中recursiveKeyFields属性指定获取上一层中的列值,并将获取的值赋给由recursiveKeyParameters属性的设置值作为参数名的参数对象而作为同名参数对象的值。如果该同名参数存在则直接进行同名赋值,如果不存在则创建该同名参数对象并赋值。
4. AC
树型表格TreeGrid属于树控件的一种,它可以采用表格的方式查看树节点中绑定的记录对象的详细列值。其中可以设置任意列的展开层,但是只能同事设置某一列。
5. B
MasterLink主要用于两个或多个Dataset数据集对象之间的主从表功能实现。在属于从数据集Dataset下的MasterLink中设置masterDataset属性指定主数据集对象Dataset,在masterKeyFields属性中设置列名,从主数据集中获取由masterKeyFields属性指定列名的列值。而从数据集则会自动创建由detailKeyParameters属性指定参数名的参数对象,其参数值来自与参数对象同名的masterKeyFields属性所指定获取的值,并最终用于匹配从数据集的MatchRule实现过滤查询。

第15章

1. ACD
RPCCommand远程调用命令可以调用服务器端的方法处理相关业务逻辑并返回自定义的信息。
2. B
UpdateCommand更新命令可以通过新建多个其下的DatasetInfo对象并绑定Dataset的方式提交数据集对象至服务器端处理。在一个ViewModel中,可以新建任意多个UpdateCommand更新命令控件,具体调用服务器端的方法处理时,可以采用方法分派实现,通过method属性的不同值实现指定调用。
3. CD
并非所有的Command控件都拥有Parameters和outParameters对象,通常在QueryCommand、UpdateCommand和RPCCommand中使用较多。使用时,通过在客户端进行赋值,执行命令提交后,在服务器端取出值进行处理,最后可以借助outParameters对象将服务器端的自定义信息进行赋值,然后返回客户端中取出。通常用于是否执行成功的提示信息。
4. BC
RequestCommand请求命令可以通过设置path属性请求打开一个新的页面,实现不同页面之间的跳转。通常实现Request请求的跳转主要有get和post方法。默认情况下,RequestCommand采用get方法。
5. C
parameterFields属性值可以设置多个,通常以英文逗号","分隔。
6. ABD
UpdateCommand更新命令控件中DatasetInfo对象的submitScope属性共有五种取值,分别是:all、all-visible、all-change、current、seleted。默认设置为all-change。
7. BC
通过Export2ExcelCommand控件可以指定Dataset数据集对象导出至Excel文件中。对于Dataset的类型并无要求。可以通过配置dataMode和exportMode属性选择导出的数据模式和导出模式(下载导出数据还是直接在浏览器中查看导出的数据)。

第16章

1. ACD
Border布局可以实现上下左右中的方式布局,HFlow可以实现水平流式布局,VFlow可以实现垂直布局。复杂应用时,可以将Border、HFlow和VFlow进行混合布局。
2. B
抽屉式布局风格类似OutlookBar菜单风格,主要通过在JSP页面中添加OutlookBarGroup标签实现。
3. ABCD
SubWindow子窗体控件通常作为控件的容器对象。默认情况下支持双击最大化、还原窗体、最小化等功能。可以通过在客户端编写JavaScript脚本代码调用Subwindow的提供的方法控制例如隐藏、显示等功能。通常在一个dorado的JSP页面中可以存在任意多个SubWindow控件,前提是它们的id不同。
4. CD
默认情况下,TabSet标签布局控件并不支持双击关闭标签页的功能,也不支持拖动标签页的排列顺序。不过这些扩展的功能可以通过控件功能的扩展实现。

第17章

1. AB
dorado中的CSS样式设置包括系统级样式设置和页面级样式设置,二者可同时进行设置样式,设置完成后并不需要重新启动应用服务器,通过刷新页面即可查看修改后效果。
2. ACD
页面级样式设置通常主要是指设置dorado中的某个页面中的控件而单独在该页面中添加样式标签<style type="text/css"></style>,然后设置该控件的style属性。

第18章

1. BD
Marmot框架并非是一种开发工具,其中提供有Spring、Hibernate、iBatis、Struts等等框架集成的示例,但并非必须有Struts框架才可运行。
2. BC
在Marmot中配置数据源主要是为像Hibernate或iBatis这样的框架服务,区别于直接用普通的在dorado中的JDBC的直连方式配置。配置数据源通常是在Spring的配置文件中完成。
3. BC
在Marmot框架中,MarmotDataset拥有dataProvider属性,用于指定需要加载数据的类在Spring配置中的BeanID。MarmotupdateCommand拥有dataResolver属性,用于指定提交MarmotDataset数据集对象至服务器端处理的类在Spring配置中的BeanID。