如何在整个视图中使用<p:blockUI>?

Les*_*ter 6 facelets primefaces jsf-2

我想用来<p:blockUI>阻止整个视图.但是因为它的属性block只接受id作为关键字而不是例如@all,我目前看到的唯一方法是使用命名容器(例如<f:subview>)来包装视图的整个内容.

不幸的是,这在语义上是脏的,我需要重命名所有绝对ID,因为<p:blockUI>已经创建了一个新的不必要的(除了)id-"前缀".

有更清洁的方法吗?

And*_*ndy 4

假设我理解正确,您可以简单地添加一个 idh:body并在 的block属性中引用该 id <p:blockUI>。另外,您不需要更改组件的 id。快速示例

<h:body id="wholeView">  
    <h:form>
        <h:inputText/><br/>
        <h:inputText/><br/>
        <p:commandButton id="pnlBtn" value="Block Panel" type="button" onclick="bui.show()"/>  
        <p:blockUI block=":wholeView" widgetVar="bui"/>  
    </h:form>     
</h:body>
Run Code Online (Sandbox Code Playgroud)

再说一次,这只是一个愚蠢的例子,只是为了演示目的而遮挡了视图。但是,根据我从下面的答案中了解到的,您需要使用 Mojarra 2.1.8 或更高版本才能使用 中的 id h:body

如何在 JSF 2 中指定 body id 属性?