相关疑难解决方法(0)

使用JSF 2.0获取命名容器内的组件clientId的完整前缀

我在JSF中通过AJAX更新组件:

<h:form>
    <h:outputLink>Click me
        <f:ajax event="click" render=":messages" />
    </h:outputLink>
</h:form>

<h:messages id="messages" globalOnly="true" />
Run Code Online (Sandbox Code Playgroud)

由于<h:messages />驻留在外面,<h:form />我必须在ID前面添加冒号(:).这有效.

但是,如果我将相同的代码放入组件并将该组件包含到我的页面中,则代码将失败.原因是:messages声明是指组件层次结构的根,而<h:messages />我想要更新的组件实际上位于我的自定义组件下,该组件位于页面下(因此位置是样式的:myComponent:messages.

在我的组件内部,如何实现<h:messages />组件的正确前缀?我知道我可以手动为我的组件分配ID,并使用它来为引用添加前缀(如:#{cc.attrs.id}:messages).但是,我不知道这个组件所处的组件层次结构的级别,所以所需的前缀甚至可能是这样的:foo:bar:x:y:messages.

java jsf components reference jsf-2

15
推荐指数
1
解决办法
1万
查看次数

标签 统计

components ×1

java ×1

jsf ×1

jsf-2 ×1

reference ×1