行为
代码地址:
在trantor中,行为分为主要分为三类视图行为(ViewAction)、服务端行为(ServerAction)以及数据加载/处理行为,它们的功能分别是:
-
ViewAction:定义视图跳转和(如在页面1执行某个操作,跳转到页面2);
-
数据Action :业务自己实现为视图加载/处理模型数据,包括(DataAction,TreeAction,[ProcessorAction](#ProcessorAction);
-
ServerAction :接受视图提交的模型数据,用于处理后端逻辑。如模型添加、编辑、删除等功能;
ViewAction
View Action 用于视图间的跳转,主要有三部分信息组成:1. 跳转目标 2. 目标数据来源 3.跳转方式。
描述的是当交互发生时,以某种方式打开所属模型的某个视图,并加载特定数据, 其中, View Action重点在于数据如何获取。详细开发文档见:开发文档ViewAction
// 一个 View Action 的 json 结构如下:(存在于 classpath 下:xxx-actions.json){ "key": "allStudents", // action key,模块内唯一 "forModel": "example_action_Student", // 所属模型的全局 key(即 moduleKey_modelKey) "name": "打开学生列表", // 显示名,可选 "desc": "这是描述信息", // 额外描述信息,可选 "extra": { "dataSource": "DataStore", // 数据来源类型,可选 DataStore | Static | Action | Empty "target": "example_action_Student_toList", // 跳转的目标视图,与 targetType 二选一 "targetType": "Detail", // 跳转的目标视图类型,与 target 二选一,可选 List | Detail | Form "condition": "语法见下", // 当 dataSource == DataStore 时,配置获取数据的 where 条件 "processorActionKey": "获取数据后处理", // 当 dataSource == DataStore 时,可以对获取数据后进行处理 "record": "语法见下", // 当 dataSource == Static 时,配置的模型记录 "actionKey": "DataActionKey", // 当 dataSource == Action 时,配置要调用的 DataAction key "confirm": "确定执行该操作吗", // 可选,非空时会弹出确认框,确定后才真正执行该 Action "openViewType": "Self" // 打开视图的方式,v可选,默认为 Self ,其余可选项为 Blank | Dialog | Drawer | Columns }}DataAction
当ViewAction中dataSource参数配置的是Action时,用户通过actionKey实现对应的获取数据DataAction。
DataAction可分为四类,详细开发文档见:开发文档DataAction
- 获取单条数据。
- 获取可分页的多条数据。
ServerAction
Server Action 用于在前端调用后端逻辑,作用于一个特定的模型。Server Action 的所属模型和入参模型相同,可对某个模型进行添加、编辑、删除等功能,详细开发文档见:开发文档ServerAction
TreeAction
部分数据容器和控件需要树形数据,典型例如Tree、SyncTree 、CascadeList 、CascadeModelSelect 等。这些数据容器在获取数据时需要实现特殊的 TreeDataAction 接口,详细开发文档见:开发文档TreeAction
ProcessorAction
Trantor 支持开发者对通过数据来源获取的数据进行后处理,该特性往往搭配 DataStore 数据来源使用,以便简化自定义数据获取的开发复杂度。方式为实现DataProcessorAction 接口并注册为 SpringBean 即可注册为数据后处理 Action 。
public interface DataProcessorAction<M extends BaseModel> { Collection<M> process(Collection<M> data); }限制:目前不区分单数据和多数据处理,如果对获取单数据的场景处理后产生多条数据,则只会取第一条。