我想processDecodes
在 ajax 请求上执行 JSF UI 组件子树。如果我指定,我会详细一点:
<f:ajax event="change" execute="componentId" render="componentPanelId" />
我希望processDecodes
在从 UIViewRoot 到 ID 为 componentId 的组件以及所有 componentId 祖先的每个组件上调用它。我会这样做是因为,目标组件的 ui 自定义组件父级会进行一些评估,特别是它们缩小了 XML 文档的部分,其中 ui 组件值适用。
假设有以下 facelet 片段:
<m:node id="root" ref="/Root">
<m:node id="element" ref="Element">
<m:label>Some Label</m:label>
<m:selectOne id="componentId" ref="@Attribute1" execute="@this" render="toRender">
...
</m:selectOne>
<m:selectOne id="toRender" ref="@Attribute2">
...
</m:selectOne>
</m:node>
</m:node>
前提是我已经在自定义组件中实现了 ajax 行为,带有属性execute
和render
. 当componentId ajax事件触发时,我会按照指定的顺序处理id为'root'、'element'和'componentId'的组件。
我尝试将其@form
用作执行属性值:
<m:selectOne id="componentId" ref="@Attribute1" execute="@form" render="toRender">
...
</m:selectOne>
它有效,因为 JSF 处理表单中的所有 ui 组件,但这不是所需的行为。
也许通过扩展PartialViewContextFactory
?
任何提示或帮助将不胜感激谢谢