1.概念视图是对用户执行某个操作时候最终所展现的视图的配置。一般来说,可能是一个JSP页面,也可能是一个freemarker模板,等等。用户请求某个操作时,会根据这个配置来决定向用户展示什么。这个模型在metawork中的实体类是:net.lingdot.metawork.core.entity.meta.View。 2.属性
3.初始化系统初始化的时候,会为通用列表建立通用视图,指向页面/metawork/common/list.jsp。 4.使用规则仅仅在用户请求*.xhtml这样形式的URL的时候,会使用这里配置的视图,如果请求的是json或者xml格式的返回结果,那么忽略视图配置。 5.关于默认值如果用户请求执行某个操作,但系统中没有配置该操作对应的视图,那么最终会跳转到"实体的folder属性值/实体别名-操作别名.jsp"。例如请求机构的编辑操作,会自动调转到/metawork/system/organization-edit.jsp。 6.关于视图数据视图数据就是展现视图的时候所需要的附加数据。典型的应用场景是某个实体的编辑视图中,有一个下拉框,其中需要用到的一些数据。这些数据与操作无关,也与当前操作的实体没有多大关系,其实就是视图本身的一种属性。配置方式举例如下: <?xml version="1.0" encoding="UTF-8"?> <viewdata> <data id="categories" function="documentCategory"> <conditions> <field name="name" operator="ne" value="客户留言"/> </conditions> </data> <data id="operations" function="operation"/> </viewdata> 根节点是viewdata,其下每一个data节点都有一个id属性,值需要唯一,含义就是组视图数据。data节点的function属性指定获取这些数据需要使用的功能(其实是为了确定数据范围)。另外,data节点可以有conditions子结点,来更加细化的限制数据范围。这个conditions节点内部的语法和数据范围的配置语法一样,也是通用查询提供的查询条件描述方式。 在具体的视图中,可以使用形如viewData.categories这样的表达式来使用视图数据。实际上,系统中有一个ViewDataInitializeInterceptor,会将相关的视图数据放到action实例的一个叫做viewData的Map类型的属性里面。例如视图中可以这样写: <s:select name="entity.defaultOperation.id" listKey="id" listValue="fullName" list="viewData.operations" label="默认操作"></s:select> |
导航 团队
| |||||||||||||||||||||||||||||||||||
视图
(没有)