在使用 JSF 2.0 命名容器内获取组件客户端 Id 的完整前缀
2022-09-03 06:00:14
我正在通过 JSF 中的 AJAX 更新组件:
<h:form>
<h:outputLink>Click me
<f:ajax event="click" render=":messages" />
</h:outputLink>
</h:form>
<h:messages id="messages" globalOnly="true" />
由于驻留在外面,我必须在ID前面加上冒号()。这有效。<h:messages />
<h:form />
:
但是,如果我将此相同的代码放入组件中并将该组件包含在我的页面中,则代码将失败。原因是声明引用了组件层次结构的根,而我要更新的组件实际上驻留在我的自定义组件下,该组件位于页面下(因此该位置是样式的 。:messages
<h:messages />
:myComponent:messages
在我的组件中,如何实现组件的正确前缀?我知道我可以手动将ID分配给我的组件,并使用它来作为引用的前缀(如)。但是,我不知道此组件位于组件层次结构的哪个级别,因此所需的前缀甚至可能类似于 。<h:messages />
:#{cc.attrs.id}:messages
:foo:bar:x:y:messages