Adding a Custom Context Attribute
在一个 web adf 应用中,WebContext 模型对象层和多种其他的模型对象相关联,例如 WebMap,
WebToc, WebOverview 等等。每一种模型对象都代表一个 Web ADF JSF control 的状态。例如,
WebContext 和一个 Context control 相关联,WebMap 和 MapControl 相关联,等等。模型对象之
间的联系,使得在一个 control 上的操作影响其他 contrls 的状态。例如,当你放大一个图形的
时候,鹰眼图得到更新,在 toc 中依赖图层的比例尺也触发变化。
WebContex 可以看做连接 web adf 应用中所有模型层对象的树的根节点。WebContext 包含一个
属性叫做'attributes'。任何对象加入到此属性被认为成一个 "context-attribute"。WebContext 对这
些 context attributes 提供生命周期管理和变更通知。默认情况下,每一个 web adf 应用中所有的
model tier 1 对象被添加作为 context-attributes。这些对象在 WEB-INF/context-attributes.xml 中声
明,并且他们在 WEB-INF/faces-config.xml 中被添加作为 context-attributes。如下:
context-attributes.xml faces-config.xml
<managed-bean>
<managed-bean-name>map</managed-bean-nam
e>
<managed-bean-class>
com.esri.adf.web.data.WebMap
</managed-bean-class>
<managed-bean-scope>none</managed-bean-scop
e>
<managed-property>
<property-name>imageFormat</property-name>
<value>PNG</value>
</managed-property>
</managed-bean>
<managed-bean>
<managed-bean-name>overview</managed-bean-
name>
<managed-bean-class>
com.esri.adf.web.data.WebOverview
</managed-bean-class>
<managed-bean-scope>none</managed-bean-scop
e>
</managed-bean>
<managed-bean>
<managed-bean-name>toc</managed-bean-name
>
<managed-bean-class>
<managed-bean>
<managed-bean-name>mapContext</manage
d-bean-name>
<managed-bean-class>
com.esri.adf.web.data.WebContext
</managed-bean-class>
<managed-bean-scope>session</managed-be
an-scope>
.....
<managed-property>
<property-name>attributes</property-name
>
<map-entries>
<map-entry>
<key>map</key>
<value>#{map}</value>
</map-entry>
<map-entry>
<key>overview</key>
<value>#{overview}</value>
</map-entry>
<map-entry>
<key>toc</key>
<value>#{toc}</value>
</map-entry>
....
评论0