1.概念实体操作定义为对某种实体的操作的抽象,一般来说对应一次http请求。例如,用户实体有一下几个操作:列表、编辑、查看等等。用户请求执行某个操作的时候,会根据操作的信息,触发从struts action开始的一系列方法调用。而操作权限的控制实际上就是对行为主体是否能够使用某个操作的限制。操作定义中配置了表单验证逻辑、操作影响的实体属性等信息,是系统中最重要的概念之一。这个模型在metawork中的实体类是:net.lingdot.metawork.core.entity.meta.Operation。 2.属性
3.初始化系统第一次启动初始化的时候,会添加4个通用操作(随着系统的发展可能会越来越多),分别是:通用编辑、通用列表、通用查看、导出Excel。这些通用操作都有一些默认的行为,在后面介绍。另外,系统初始化的时候还会根据需要初始化一些特定实体的其他操作。 4.特殊属性说明操作有一些属性配置使用XML来描述,具体如下: 4.1.operationRule(操作规则)在操作的编辑页面,操作规则是用一个树状编辑器来编辑的,最终保存到数据库是XML形式。 举例说明之,看用户实体的个人信息编辑操作的规则: <?xml version="1.0" encoding="UTF-8"?> <Rule> <field name="addDate"/> <field name="author"/> <field name="category"> <field name="id"/> </field> <field name="content"/> <field name="id"/> <field name="link"/> <field name="name"/> <field name="picture"/> <field name="summary"/> </Rule> 可以看出,操作规则的描述采用了树形的结构。假设这是实体A的某个操作的规则,那么这些配置表明在执行这个操作的时候,可以查看以及编辑上面的每一个field元素的name属性指定的实体属性。前面在关于实体属性的一节中我们曾经说过实体属性通过relatedEntityType属性最终关联成了一颗树,此处其实就是在A实体的整个属性树上从根开始选取了一部分属性(其中当然包括属性的属性,例如category属性的id属性)。另外,在field元素上可以加入一系列的其他属性来描述操作规则的其他方面:
4.2.validateRule(校验规则)在操作的编辑页面上可以直接编辑校验规则的XML描述。这个XML和struts2的校验器需要的XML配置语法是一样的。例如: <?xml version="1.0" encoding="UTF-8"?> <validators> <field name="entity.name"> <field-validator type="requiredstring"> <message>用户名不能为空!</message> </field-validator> </field> <field name="entity.email"> <field-validator type="email"> <message>电子邮件不正确</message> </field-validator> </field> </validators> 如果这个操作对应到了一个表单页面,那么表单提交的时候会自动触发校验。 4.3.method(方法配置)方法配置在操作规则编辑页面也是直接以XML的形式出现的。例如通用编辑这个操作的方法描述如下: <?xml version="1.0" encoding="UTF-8"?> <MethodConfig> <method name="edit" type="GET" default="true"/> <method name="save" type="POST"/> <method name="delete" type="DELETE"/> </MethodConfig> 含义很明显,当以GET方式请求执行该操作的时候,调用action的edit方法,以POST方式请求执行该操作时调用save方法,以此类推。 5.通用操作系统初始化的时候初始化了一些通用操作,下面分别描述: 4.1.通用编辑这个操作可以用于实体的编辑。各属性值如下:
4.2.通用列表这个操作可以用于实体的列表。各属性值如下:
4.3.通用查看这个操作可以用于实体的查看。各属性值如下:
4.4.导出Excel这个操作可以用于实体导出Excel。各属性值如下:
5.其他在请求执行一个操作的时候,如果该操作是通用操作,那么会复制一份这个通用操作对象,并把当前实体对应的metaEntity设置到这个复制结果上,后续的执行过程就和非通用操作相同了。 |
导航 团队
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
实体操作
(没有)