




已阅读5页,还剩145页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
FastUnit 开发手册Version 3.2北京易点迅联信息技术有限公司各章内容简介:第1章 概述:平台简介第2章 系统安装:如何安装FastUnit平台第3章 平台架构:技术框架、开发模式等介绍第4章 快速开始:以简单的案例入手,直接体验如何使用平台第5章 组件开发:详细介绍如何开发各类组件第6章 工作流:流程开发和管理第7章 专题:综合功能或独立功能的讲解第8章API简介:介绍常用类或接口第9章 案例分析:结合案例深入了解平台运行机制第10章 应用定制:介绍针对具体项目时,可能需要作出的调整第11章 系统设置:运行环境和开发环境设置第12章 配置文件:配置文件详解第13章 开发管理:基于FastUnit开发的项目管理参考第14章 附录:辅助功能及其他参考相关文档:关于用户、权限管理等,参见FastUnit管理手册参考示例:登陆系统后可访问“演示中心”,有大量示例可供参考目录1 概述11.1 主要特点11.2 运行环境11.3 技能要求12 系统安装12.1 安装JDK22.2 设置JAVA_HOME变量22.3 安装WEB服务器22.4 放置FastUnit文件32.5 部署到WEB服务器32.6 检验安装是否成功32.7 Eclipse下管理源码43 平台架构53.1 基本概念53.2 系统组成73.3 运行原理73.4 文件结构83.5 控制台83.6 开发模式94 快速开始104.1 使用向导实现客户管理模块104.2 手动实现用户登陆模块115 组件开发145.1 概述145.1.1 组件管理145.1.2 域145.1.3 组件简介155.1.4 组件关系155.1.5 组件编号规则165.1.6 各类组件的共有属性165.1.7 组件树的刷新165.2 表165.2.1 操作说明165.2.2 表属性175.2.3 字段属性185.3 单元205.3.1 单元类型205.3.2 操作说明215.3.3 向导225.3.4 基本属性235.3.5 样式属性255.3.6 高级属性275.3.7 列表属性295.3.8 内容385.3.9 页面属性385.4 元素395.4.1 操作说明395.4.2 布局管理415.4.3 基本属性445.4.4 高级属性475.4.5 TD属性485.4.6 验证属性485.4.7 基本组件505.4.8 复合组件555.4.9 高级组件605.4.10 预设元素615.5 Action635.5.1 Action属性635.5.2 ActionResult属性655.5.3 执行流程665.5.4 Action接口675.6 框架675.6.1 属性说明675.7 报表675.7.1 操作说明685.7.2 属性说明685.7.3 报表数据685.8 枚举695.8.1 操作说明705.8.2 枚举属性705.8.3 节点属性715.9 树715.9.1 表现方式725.9.2 操作说明725.9.3 树属性735.9.4 节点属性745.10 统计图755.10.1 统计图类型765.10.2 操作说明765.10.3 基本属性765.10.4 数据图区属性775.10.5 饼图属性775.10.6 权限控制775.10.7 案例785.11 数据权限785.11.1 使用说明785.11.2 节点属性795.11.3 案例795.12 计划795.12.1 任务795.12.2 触发器805.13 流程805.14 自增器805.14.1 使用说明805.14.2 属性说明815.14.3 案例815.15 多语言826 工作流826.1 表826.1.1 流程编号826.1.2 流程状态826.2 单元826.2.1 视图展现控制826.2.2 Action类836.3 流程组件836.3.1 流程836.3.2 变量846.4 流程定义856.4.1 流程树856.4.2 人工任务856.4.3 分支任务876.5 流程实例876.5.1 发起流程876.5.2 操作者选择执行人876.5.3 清除测试数据887 专题887.1 用户权限887.1.1 权限点887.1.2 组织结构897.2 并发处理897.2.1 必要条件897.2.2 自动处理897.2.3 手动处理897.3 表达式897.3.1 常量表达式 - $C 897.3.2 变量表达式 - $V 907.3.3 用户表达式 - $U 907.3.4 机构表达式 - $O 907.3.5 Request表达式 - $R 917.3.6 Session表达式 - $S 917.3.7 RequestSession表达式 - $RS 917.3.8 数据表达式 - $D 917.3.9 语言表达式 - $L 917.3.10 SQL表达式 - $SQL / $SQL 927.3.11 查询表达式 - $Q 927.3.12 表达式嵌套937.4 变量937.5 查询937.5.1 查询单元937.5.2 对列表单元的要求947.5.3 多表查询947.5.4 清除查询条件的缓存947.6 展现风格947.6.1 默认风格947.6.2 定制风格1027.7 Ajax1037.7.1 Action设置1037.7.2 Ajax对象的使用1037.8 上传和下载1047.8.1 文件上传1047.8.2 文件存储1057.8.3 文件展现1067.9 日历1067.10 国际化1077.10.1 默认语言1077.10.2 $L 语言表达式1077.10.3 JavaScript1077.10.4 以字段名为基础的多语言方案1098 API简介1098.1 Java1098.1.1 常用对象1098.1.2 数据访问1108.1.3 常用接口1108.1.4 已实现的接口1108.2 JavaScript1118.2.1 fastunit.js1118.2.2 tree.js1129 案例分析1139.1 客户管理1149.1.1 进入表单页面的途径1149.1.2 显示模式的应用1149.1.3 表单单元数据的获取1159.1.4 保存功能分析1159.1.5 删除功能分析1169.2 用户登录1169.2.1 应用模板1169.2.2 应用元素显示模式11610 应用定制11610.1 切换应用数据库11610.2 重新定义用户表11710.3 重新定义机构表11710.4 app域的说明11810.4.1 单元组“admin”11810.4.2 设置新增用户的初始密码11810.4.3 数据权限“user”说明11810.4.4 登录页面11810.4.5 访问失败页面11910.5 Web服务器URI编码设置11911 系统设置11911.1 系统信息11911.2 应用设置11911.3 开发设置12011.4 创建域12012 配置文件12112.1 数据源配置12112.1.1 配置详解12112.1.2 Tomcat连接池配置12212.2 全局配置12312.3 域配置12312.3.1 domain.xml12312.3.2 interceptors.xml12313 开发管理12413.1 开发规范12413.2 版本控制12413.2.1 版本导出12513.2.2 版本导入12513.2.3 版本查看12513.3 协同开发12513.3.1 集中开发12513.3.2 分布式开发12513.4 发布和锁定12613.5 调试工具12613.5.1 跟踪器12613.5.2 计时器12713.6 文件夹设置和版本升级12713.6.1 文件夹设置12713.6.2 版本升级12714 附录12814.1 PostgreSQL数据库12814.1.1 Windows下安装步骤12814.1.2 数据库管理13214.1.3 数据库用户管理13814.1.4 远程访问13814.2 部署到JBoss13814.3 Linux下使用报表和统计图的注意事项13914.3.1 显示问题的解决13914.3.2 中文问题的解决13914.4 iReport简介13914.4.1 安装13914.4.2 基本设置13914.4.3 数据源设置14014.4.4 PDF报表的中文处理14014.4.5 使用Report Wizard创建报表14114.4.6 编译和预览143v1 概述FastUnit是基于Java的快速开发平台,开发时几乎不需编码,以可插拔组件为核心实现软件自动化,在可视化环境中创建可观察、可管理的企业级应用。平台集成了运行框架、组件库、开发环境和辅助工具,实现了用户管理、权限管理、系统监控等通用子系统,开发中可以摆脱大部分技术问题的困扰,集中精力解决客户需求。1.1 主要特点l 简单快速 组件化:提供大量直接使用的组件,复杂技术封装,可视化配置; 无代码:大部分工作以无代码方式完成,无需专业技术基础; 向导:快速创建完整模块,直接投入使用; 模块移植:避免重复开发。l 功能强大 稳定:底层框架实现了MVC和AOP模式,技术成熟; 高效:具有缓存、代码精简、单次数据连接、预存取、查询优化等特性; 安全:实现了访问控制、数据权限、域锁定、令牌校验等安全手段; 可扩展:IOC模式实现组件注册机制,通过扩展组件使平台不断强大; 大型应用支持:海量数据优化处理、国际化、集群等;l 规范化 所有组件标准一致,统一管理; 可持续积累:通用模块可不断加入资源库,在另一个项目中直接使用。l 参与应用开发的全过程 需求阶段:迅速搭建原型系统,供开发人员和客户进行分析评估; 开发阶段:可视化环境,同时提供版本控制、协同开发、数据迁移等辅助工具; 测试阶段:跟踪器用于监控各线程资源消耗,使系统瓶颈一目了然; 维护阶段:发布管理、在线更新。1.2 运行环境l JDK1.5及以上;l 操作系统:Unix/Linux、Windows、AS400;l 数据库:Oracle、DB2、SQL Server、Sybase、MySQL、PostgreSQL;l 应用服务器:WebLogic、WebSphere、JBoss、Tomcat、Resin、Apusic等; 1.3 技能要求l 了解Java编程基本概念:面向对象、接口、继承等;l 了解关系数据库的SQL语法。2 系统安装本章未涉及应用数据库,直接使用平台自带的HSQLDB数据库,在正式开发之前,请参照第9章“应用定制”针对具体项目做相应调整。2.1 安装JDK需要安装JDK1.5或以上版本。如果已安装,则跳过此节。JDK安装包可在官方网站下载,按默认安装即可。2.2 设置JAVA_HOME变量对于Windows,由“我的电脑”-右键“属性”-“高级”-“环境变量”,进入设置:2、填写JDK的安装路径1、单击“新建”2.3 安装WEB服务器Tomcat安装方法:1. 在官方网站下载zip版本:下载“zip”版本2. 下载的zip文件解压即可(启动tomcat的方法:双击/tomcat/bin/startup.bat)2.4 放置FastUnit文件1. 解压产品包fastunit和fastunithome目录放置在任意位置,如果都放置在D盘根路径下,则步骤2、3可跳过。2. 设置home路径修改如下文件:/fastunit/WEB-INF/src/init.xml/fastunit/WEB-INF/classes/init.xml修改节点的路径,指向fastunithome目录。3. 设置日志输出路径修改如下文件:/fastunit/WEB-INF/src/perties/fastunit/WEB-INF/classes/perties修改属性“log4j.appender.stdout.File”,指向/fastunithome/log/out.log路径。2.5 部署到WEB服务器以Tomcat5/6为例,在tomcat/conf/Catalina/localhost/下创建一个ROOT.xml文件(注意:ROOT必须大写),内容如下:注意,必须部署为根路径方式:l 对于Tomcat,在上述xml文件中,Context节点的path属性要设为空;l 对于WebLogic,可以通过WebLogic Builder工具将“Context Root”设为“/”。2.6 检验安装是否成功启动WEB服务器后,访问登录页面“http:/localhost:8080/app/login.do”,出现如下登录页面则表明安装成功,以默认用户名“admin”和密码“admin”登录,进入开发平台。2.7 Eclipse下管理源码创建工程时,路径指向“fastunitWEB-INF”:如果Eclipse编译源码时提示找不到javax.servlet.http.XXX时,引入servlet-api.jar即可(在tomcat的lib路径下可找到)。3 平台架构3.1 基本概念l 元素(Element)和单元(Unit)元素是视图展现的最小单位,可以是一个文本域或一个统计图等;单元是一组元素的集合,构成完整页面或页面的一个区域,单元可以嵌套。UnitElement抽象l ActionAction负责执行业务逻辑。以表组件为基础,可以直接通过命令行语法实现数据库表的增加、修改和删除,无需编写程序。l MVC在FastUnit框架中,单元是视图的唯一实现方式,单元将数据与展现形式完全分离;Action负责执行业务逻辑;开发中不必关系控制器,系统会自动实现调度。l 拦截器(Interceptor)拦截器是实现AOP模式的重要手段,用于处理切面问题或动态逻辑。例如,系统的权限控制即使用拦截器实现的。3.2 系统组成l 框架层:底层支撑环境,协调各组件共同工作,统一资源调度;l 组件层:以Unit组件为核心,将复杂技术封装,解决复用性,可持续积累;l 开发控制台:提供可视化开发环境,使开发变得简单、迅速、规范化,同时提供了版本控制、跟踪器等辅助工具;l 管理控制台:实现了应用中必备的子系统:用户管理、权限管理、系统监控等。3.3 运行原理l 视图单元实现了视图,在运行时刻,单元及所属元素将依据在控制台中设置的参数,将组件对象转换为HTML代码输出到客户端。访问单元的URL为:“/域/单元编号.do”,例如域“app”下的单元“test”,访问URL为“/app/test.do”。l ActionAction,即启用了Action的元素,在运行时刻,调用所设置的Action类,执行此类的execute方法。访问Action的URL为:“/域/单元编号/元素编号.do”,例如域“app”下单元“test”的Action元素“save”,访问URL为“/app/test/save.do”。l 拦截器拦截器在视图或Action执行前、后进行拦截,用来执行动态逻辑: AI:ActionInterceptor,Action拦截器 UI:UnitInterceptor,单元拦截器 PI:PageInterceptor,页面拦截器3.4 文件结构l 应用路径(fastunit目录)路径说明/common/公用资源,如css、js、图片文件等/common/datepicker/日历控件/common/fckeditor/FCKEditor编辑器/common/images/图片资源/common/skins/皮肤(样式文件)路径/common/tree/树/domain/各个域中组件专用的资源文件/domain/app/app域中组件专用的资源文件/files/FCKEditor编辑器的文件上传和引用路径;也是“在线文件”、“在线多文件”字段存储上传文件的路径/WEB-INF/lib/平台运行所需的jar文件/WEB-INF/src/包含了app域和demo域的源码l Home路径(fastunithome目录):路径说明/datasource/数据源配置文件/domain/域数据库、域配置文件、模板/files/“文件”、“多文件”字段存储上传文件的路径/log/日志文件输出路径/temp/文件上传的临时路径/version/版本文件路径3.5 控制台系统登录后,进入如下界面:切换视图l 应用系统:业务应用;l 系统管理:用户权限、设置、监控等管理;l 流程定义:流程步骤设置;l 视图说明: 组件管理:开发人员的工作场所,管理各类组件; 开发设置:开发环境和运行环境设置; 演示中心:功能展示、参考示例,可在“demo”域查看相应的组件设置; 测试中心:用于测试,对应了“test”域。3.6 开发模式l 在开发控制台中管理组件以单元和Action为核心开发各类组件,可视化环境下的开发工作无需编码,占据90%以上的工作量。l 完整的开发流程通常为:顺序步骤内容1需求分析2创建表从数据库导入表或手动创建,设定表的行为规则。3创建单元使用向导或手动创建,调整页面布局、样式风格、验证逻辑等。4完成单元中的Action通过Action命令行设定业务逻辑或自行指定Action类、设定流转控制等。5挂接菜单菜单树上添加此模块的入口链接。6权限点设置单元显示模式、Action、数据权限、元素权限。7测试8发布并锁定单元4 快速开始本章将实现两个简单案例,来直接体验使用FastUnit开发的基本过程,对实现原理不作过多解释,第8章“案例分析”中将对这两个案例做详细分析。下面我们进入开发控制台,选择在“test”域中创建这两个案例。4.1 使用向导实现客户管理模块需求设定:客户表维护,具有增、删、改、查、分页、表单验证等完整功能。l 进入表管理界面:1. 选择 test域2. 在“表”的右键菜单中选择“新增表” l 创建“客户表”组件:1. 表和字段属性设置完毕后保存2. 在数据库中创建表注:“创建表”按钮在保存之后才会出现,在下一步完成数据库创建后消失。l 在数据库中创建表:点击创建l 进入向导界面:在“单元”的右键菜单中选择“向导” l 使用向导创建各单元:3. 创建2. 填写名称1. 点击“生成编号”至此,开发完成。l 检验开发结果:单元“customer”是此模块的入口页面,点击此单元,在单元管理界面上点击“预览”卡片,此时可以测试增、删、改、查各项功能:注:访问此页面的URL为“http:/localhost:8080/test/customer.do”。4.2 手动实现用户登陆模块l 在组件树上选择新增表单: l 设置单元的“基本”卡片:2. 设为“可访问”1. 填写“单元编号”和“标题”l 设置单元的“样式”卡片:含义:第一列右对齐,宽度30%;第二列左对齐,宽度70% l 点击“元素”卡片进入元素管理界面:1. 列数设为22. 右键菜单4. 创建一个“密码”元素e25. 创建一个“按钮”元素e33. 创建一个“文本域”元素e1l 鼠标左键点击元素图标“e1”,设置元素编号和名称:l 鼠标左键点击元素图标“e2”,设置元素编号和名称:l 鼠标左键点击元素图标“e3”,设置 “基本”卡片和“TD”卡片;设为“中”l 鼠标右键点击元素图标“login”,在右键菜单中点击“自动标签”取消自动标签、再通过右键菜单点击“Action”将其设为Action元素:设为“Action”后,出现“蓝色A”标志 l 设置元素“login”的“Action”卡片和“ActionResult”卡片:l 点击“保存”按钮,保存单元组件;l 编写test.LoginAction类,代码如下:package test;import com.fastunit.context.ActionContext;import com.fastunit.support.Action;public class LoginAction implements Action public ActionContext execute(ActionContext ac) throws Exception String userId = ac.getRequestParameter(login.userid); String password = ac.getRequestParameter(login.password); / 此处设置的登录成功的条件:用户名和密码都为test。实际应用中应当查询数据库,并在登录成功后将用户对象存入Session if (!(test.equals(userId) & test.equals(password) / 设置Action失败 ac.getActionResult().setSuccessful(false); return ac; 至此,开发完成。l 在组件树上点击单元“login”,在“预览”中测试:注:访问此页面的URL为“http:/localhost:8080/test/login.do?m=e”。5 组件开发5.1 概述5.1.1 组件管理组件管理区组件树域5.1.2 域组件是创建在域中。可以把“域”简单理解为“子系统”,一个系统较大时,可以把功能相对独立的子系统设为一个域。合理的域划分,可以使结构清晰,划分域后组件更方便管理、也便于授权。不同域之间的组件的限制:某些组件不能直接引用。系统自带的域说明:l app:应用系统,包含最基本的登录、首页等组件;需要改动原有组件时,请参照第9章“应用定制”的说明;l demo:演示中心;l test:测试域,用于练习和测试,可以随意做任何操作。注:正式开发时,可以直接在app域上开发,但建议在新的域上开发,有利于区分平台自带的和自己开发的组件,并能减少平台升级时的冲突。5.1.3 组件简介组件描述表对应为数据库的表,为Action和单元提供操作依据。元素视图的最小展现单位。单元元素的集合,构成完整的页面或页面的一个区域。Action执行业务逻辑。枚举为单选、下列等元素提供数据选项。树树状结构数据的展现。统计图数据图形。数据权限为单元和枚举提供数据权限控制。计划定时任务流程工作流组件自增器自动生成唯一字符串,供表的字段使用。多语言国际化各类组件一般只需设置编号以及少数必要的属性即可满足需要,大部分属性用于特殊控制,不使用时保持默认值。5.1.4 组件关系单元用来实现视图,Action用来执行业务逻辑,其他组件都是为两者服务的。5.1.5 组件编号规则为形成统一规范、减少因大小写带来的问题,系统会强制将表名转换为大写,其他编号一律使用小写。5.1.6 各类组件的共有属性属性说明组仅用来对组件分类。锁定锁定后的组件,仅锁定人或项目经理组成员可以修改该组件,包括解除锁定。锁定的组件不支持删除操作。一个已完成并通过测试的组件应当由项目经理或其他管理人员设为锁定,防止组件发生变动。排序仅用来决定在组件树上的显示位置。开发日志包含“创建人”、“创建时间”、“修改人”、“修改时间”、“备忘录”。“备忘录”可用于记录开发要点、注意事项、更新计划等。5.1.7 组件树的刷新各组件保存时,只有在新增或组件编号变化时才会主动刷新组件树。其他情况下,可点击刷新图片手动刷新组件树。5.2 表业务当中涉及的数据库表都应当创建一个表组件,表组件定义了数据库特性及部分业务逻辑。表在下面的场合中被使用:l 被向导使用:向导通过表的配置,生成相关的一系列单元;l 被单元使用:单元通过“映射表”来执行相关视图逻辑;l 被Action使用:依赖表的配置执行命令行操作;5.2.1 操作说明 右键菜单删除表新增组新增表复制一份相同的表列出映射此表的单元从数据库导入 表管理删除字段在数据库中创建表新增字段必填主键注:“创建表”按钮出现的条件:数据库中不存在此表并且主键已设。 从数据库导入表数据库中存在的表名可空,使用默认数据源 在数据库创建表在表管理界面点击“创建表”,进入如下视图,点击“创建”执行建表脚本。需要修正时可直接修改脚本注:字段设为无效时不参与创建。 从其他表组件引入字段表1、点击“引入字段”:2、选择某个表组件中的某些字段、引入:3、导入2、选择字段1、选择表组件5.2.2 表属性 表名与数据库中的表名一致。表名变化时,需要手动修改相关Action元素“命令行”的引用。 版本字段版本字段用来防止脏读、重复写。设置了版本字段的表在执行修改和删除操作时,会依据版本字段的值是否发生变化来判断此条数据是否被他人修改。当已被他人修改时,当前的修改或删除操作不会被执行。例如,甲将某条数据取出时,版本字段的值为“a”,然后乙修改了该条数据,版本字段的值变为“b”,接下来甲保存数据时,系统会提示由于版本字段的变化导致保存失败。l 对版本字段的要求:每次数据的修改都会使版本字段的值发生变化,并且不会重复。一般使用带有时间戳或自增器的值生成器的字段。l 对映射此表的单元的要求:可以不包含版本字段元素,但单元数据(MapList)中要包含版本字段的值(对于“SQL”或“SqlProvider”数据模式而言,查询结果集中要包含版本字段)。参见专题“并发处理”。5.2.3 字段属性 字段名数据库表的字段名。“m”、“p”、“k”是关键词,系统将检测不能用作字段名。 数据类型.1 数据库字段不同数据库的数据类型稍有差异,系统会自动映射不同数据库的类型并处理差异性,数据类型的对应关系如下:表一:OracleDB2SQL Server定长字符CHARCHARCHAR变长字符VARCHAR2VARCHARVARCHAR小整数NUMBER(5)SMALLINTSMALLINT整数NUMBER(10)INTEGERINT大整数NUMBER(19)BIGINTNUMERIC(19)单精度FLOATFLOATFLOAT双精度DOUBLEDOUBLEDOUBLE小数NUMBERDECIMALNUMERIC日期DATEDATEDATETIME时间DATETIMEDATETIME时间戳DATETIMESTAMPDATETIMECLOBCLOBCLOBTEXTBLOBBLOBBLOBIMAGE表二:MySQLPostgreSQLSybase定长字符CHARCHARCHAR变长字符VARCHARVARCHARVARCHAR小整数SMALLINTSMALLINTSMALLINT整数INTEGERINTEGERINT大整数BIGINTBIGINTNUMERIC(19)单精度FLOATREAL/FLOAT4FLOAT双精度DOUBLEDOUBLEDOUBLE小数NUMERICNUMERICNUMERIC日期DATEDATEDATETIME时间TIMETIMEDATETIME时间戳DATETIMETIMESTAMPDATETIMECLOBLONGTEXTTEXTTEXTBLOBLONGBLOBBYTEAIMAGE.2 日期类型的存储和显示日期存储格式:类型格式日期yyyy-MM-dd时间HH:mm:ss时间戳yyyy-MM-dd HH:mm:ss.SSS某些数据库不明确区分日期、时间或时间戳(如Oracle、SQL Server等),其数据存储和显示的规则如下:l 存储:依据字段指定的数据类型;l 显示:依据元素指定的格式器,未指定时显示原始值。.3 虚拟字段虚拟字段包括:文件、多文件、在线文件、在线多文件、图片、多图片。虚拟字段不是数据库的真实字段,用来为数据绑定磁盘文件,须结合元素“文件”使用,使用方法详见 “组件开发-元素-基本组件-文件”、“专题-上传和下载”。 主键表必须设置主键,否则不能通过向导来创建单元,也不能通过Action命令行来操作此表。 必填、长度、精度仅在创建数据库表时使用。表单验证时不会检查此处的设置,而是依据元素的验证属性。 值生成器、生成规则l 值生成器为字段自动生成值,设置了值生成器的字段不会接受表单提交的数据,因此单元中没有该字段的元素时,字段的值也仍然会按规则生成。l 生成规则 新增:仅在执行insert时使用值生成器; 修改:仅在执行update时使用值生成器; 全部:在执行insert或update时都使用值生成器;l 系统提供的值生成器值生成器生成的值数据库数据库自动设值,如自增字段。设为此项时,无论新增还是修改,系统都不会设置该字段的值,由数据库处理。此选项不受“生成规则”约束。日期当前日期时间当前时间时间戳当前日期时间用户ID执行操作的用户的编号l 案例表T的字段c设置了“时间戳”类型的值生成器,生成规则为“新增”:当表T新增了一条数据时,字段c的值被设为当前日期时间,修改此条数据时,字段c的值不发生变化。l 自增器自增器是值生成器的来源之一,会自动加入到值生成器的下拉列表中。l 注意事项 作为父表,通过向导生成父子表应用时,父表的主键不能设置值生成器,否则无法与子表同步;必须这样设置时,需在代码中同步关联字段; 对于TIMESTAMP字段类型,某些数据库会自动设置值(如MySQL),此时不必设为时间戳类型的值生成器。 有效无效的字段不会参与数据库操作。一般用来标识待定字段。 显示顺序在使用向导生成的单元时,字段的显示顺序决定了元素的位置,因此在使用向导之前应调整好字段顺序,可以减少调整元素布局的工作量。5.3 单元单元是一组元素的集合,通常从视图布局角度将同一区域的元素划分为一个单元。l “可访问”的单元可以使用URL“/domain/unitid.do”来访问。l 单元可以通过“单元元素”成为其他单元的子单元。5.3.1 单元类型l 包含元素的单元: 表单:用来显示单条数据或非数据元素,是最常用的单元类型。 列表:用来显示多行数据。 查询:为列表单元提供查询功能。l 不包含元素的单元: 框架:帧结构的页面。 报表:利用开源报表JasperReport来产生报表。l 图标说明:锁定可访问未发布包含权限点包含权限点时,可能的权限点来源为:“需要授权”、“数据权限”不为空、所属元素“需要授权”。5.3.2 操作说明 右键菜单删除单元复制一份相同的单元列出引用此单元的单元元素查询单元查询使用向导创建单元新增组新增各类单元 单元管理数据相关属性淡蓝色背景:可使用表达式,鼠标移上时有提示从其他单元或本单元复制元素查看单元效果转入元素管理 预览以 “修改”模式来显示该页面或单元,由于在非正式环境下运行,可能会与实际结果有出入,例如,此单元需要提供其他request参数才能正常运转。对不可访问的单元,预览效果可能和实际效果不完全一样,以下原因可能引起误差:l 使用的是dev的域设置(domain.xml)l 没有引入其所属页面的js和css资源此时应以所属页面的url访问来看实际的效果。 引入元素用于从其他单元或本单元复制元素。4、导入1、选择从哪个单元引入元素3、可以重新命名元素编号2、选择元素 单元查询l 所有文本域均为模糊查询l 显示列:在列表中显示指定的列 元素查询l 所有文本域均为模糊查询l 显示列:在列表中显示指定的列5.3.3 向导向导可以依据表生成各种不同类型的应用,实现瞬间创建完整模块,生成后直接使用。l 操作图解:4. 修改编号5. 填写名称6. 创建3. 自动生成编号2. 选择表1. 选择类型 映射表:会列出当前域和公共域中的表组件。 生成编号:可以不使用,手动设置编号; 加入单元组:如果选中,提交后创建单元组(如果已存在则不创建),并将本次生成的所有单元加入此单元组,未选中时所有单元放置于单元根路径下。l 验证规则 选择的表组件不能没有设置主键; 选中“加入单元组”时,单元组编号不允许为空(允许是已存在的单元组); 所有单元编号不能为空和重复,并且不能是已存在的单元编号; 对于父子表,父表和子表不能相同,链接字段不能为空并且存在于相应的表中。l 其他说明 向导配置见FastUnit管理手册 向导组件类型可以自行添加,详见FastUnit组件开发手册 修改/domain/dev/wizard.js可以改变自动生成的单元编号后缀5.3.4 基本属性 单元编号单元编号是单元的唯一标志。单元编号确定后不要轻易变动,变动后需要手动修改相关的引用:l 树节点的链接、目标单元;l Action元素的验证单元、命令行、转向URL;l 程序中引用的单元编号。 标题标题后的“显示”选项用于控制是否显示单元标题。 映射表下拉选项中会列出当前域和公共域中的表组件。以下情形必须设置映射表:l 此单元在Action的“命令行”以主单元角色参与表的操作;l 列表单元设置了“查询单元”属性;l 报表单元设置了“查询单元”属性; 多表设置格式:域|表名,版本字段别名;域|表名,版本字段别名;用于:1、 多表更新:“版本字段别名”可以省略;对于关联表设计时应注意:当不同表的主键名称相同时,要求其含义和数据一致;2、 多表并发检查:“版本字段别名”必须设。参见专题“并发处理”、演示中心“Action-并发处理”。 数据模式、数据表达式数据模式和数据表达式用来设置单元数据。单元数据对应为MapList类对象,应当包含所属元素的值,运行期间元素的配置与数据相结合产生最终表现形态。数据模式说明数据表达式SQL使用sql语句获取数据sql语句SqlProvider使用SqlProvider提供的sql语句获取数据实现接口SqlProvider的类路径MapListFactory使用MapListFactory设置数据实现接口MapListFactory的类路径静态值静态数据,常用于测试格式:元素1编号=元素1值,元素2编号,元素2值;(以“;”分隔一行数据)注:1、 单元数据也可以在拦截器中通过Unit.setData()来动态设置;2、 无论何种方式设置单元数据,主键不能设别名(包括数据来自单表、多表)。l DB2数据库某些版本注意事项:系统在处理列表单元的分页查询时, 分别使用了各种数据库的专有语法对原始SQL改造以提高效率。对于DB2的分页语法,原始SQL中不能直接使用“*”作为结果集,如:select * from T此时,改成如下语法之一即可:select t1.* from T t1select T.* from T 数据源数据模式为“SQL”或“SqlProvider”时所要使用的数据源,数据源文件位于home/datasource/中,设置时不包含“.xml”后缀。默认使用域配置文件设置的数据源。 数据权限数据模式为“SQL”或“SqlProvider”时,可以设置数据权限,此时要求SQL语句中包含“$DP”字符串,“$DP”在运行期间会被替换为当前用户所具有的条件语句。参见“数据权限”的说明。 可访问决定此单元是否可以通过URL“/domain/unitid.do”来访问。不可访问的单元只能以其他单元的子单元形式出现。一般情形下,对于“可访问”的单元,除了登录页面,都应设为“需要授权”,否则,如果有人知道该单元的url路径,在不登陆系统的情况下,也可直接通url访问。 发布未发布的单元(包括可访问的和不可访问的)及所属Action,只有开发组或项目经理组成员可以访问。处于调试中的单元应设为未发布,开发完成后设为发布。对于普通用户,访问未发布单元时将被提示“页面不存在”,已发布单元中包含未发布单元时,单元的位置被字符串“unpublished unit: unitid!”替代。0 显示模式l 单元的显示模式决定了所属元素的显示模式:单元显示模式元素显示模式s(查看)使用“有权模式”的“查看”设置(默认为文本)e(修改)使用“有权模式”的“修改”设置(默认为控件)a(新增)使用“有权模式”的“新增”设置(默认为控件)单元需要授权时,单元显示模式作为不同的权限点分别控制。l 不同单元类型具有的显示模式选项:单元显示模式表单列表查询s(查看)e(修改)a(新增)l 设置单元显示模式的方式: 指定URL参数:“m” 参数用于设置全局显示模式,“unitid.m” 参数用于设置指定单元的显示模式,注意参数值s、e、a为小写,参数值不合法时将被忽略。 程序设置:拦截器中通过Unit.setShowMode()设置,此方式优先级最高;l 决定单元显示模式的流程:举例说明:假设的场景:“b”、“c”是可访问单元“a”的子单元,这3个单元属于域“app”访问顺序URLa的显示模式b的显示模式c的显示模式1/app
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新质生产力如何赋能人文发展
- 2025年建筑医院环境设计与规划试题答案及解析
- 2025年内科疾病临床诊断考试答案及解析
- 2025年药学学习药物不良反应的模拟测试答案及解析
- 2025年皮肤科皮肤疾病诊断鉴别考核答案及解析
- 2025年急诊医学生命体征监测技能考核答案及解析
- 湾区新质生产力布局
- 民族团结与爱国主义课件
- 吉林省新质生产力的发展探索
- 2025年全科护理围手术期护理技能测评答案及解析
- 超级充电综合站及配套设施建设项目可行性研究报告
- 中国心房颤动管理指南2025解读
- 《云计算与大数据》课件第3章“大数据”关键技术与应用
- 2025-2026学年人教大同版(2024)小学英语三年级上册教学计划及进度表
- 2025-2026学年陕旅版(三起)(2024)小学英语四年级上册(全册)教学设计(附目录)
- 2025年血液净化护理知识测试题库附答案
- 心电监护血氧饱和度监测技术
- 局工作秘密管理暂行办法
- 智能仓储物流管理平台的设计与开发
- 2025上海戏剧学院辅导员考试试题及答案
- 2023年黑龙江省汤原县事业单位公开招聘辅警31名笔试题带答案
评论
0/150
提交评论