BootsFaces 不渲染来自 ajax 的区域

BootsFaces does not render area from ajax

我正在尝试根据表单中提供的值使用 ajax (BootsFaces) 呈现数据 table。不幸的是,所需的部分没有呈现。我可以在网络选项卡中看到 ajax 请求,但它没有执行任何操作(区域不呈现并且此 searchPartialBean.getSearchList() 方法未被调用)。下面是我的代码片段。我这样做有什么问题吗?

<b:tab title="Search">
<h:form>
    <b:row>
        <b:column mediumScreen="7">
            <b:inputText placeholder="Telephone number" label="Telephone number"
                         value="#{searchPartialBean.telephoneNumber}"/>
            <b:inputText placeholder="First name" label="First Name"
                         value="#{searchPartialBean.firstName}"/>
            <b:inputText placeholder="Last name" label="Last Name"
                         value="#{searchPartialBean.lastName}"/>
            <b:commandButton look="primary" id="search-form-submit" value="Search"
                             update="serach-results-table"/>
        </b:column>
        <b:column mediumScreen="5">
            <b:alert severity="info" title="Info">
                This will contain the search help.
            </b:alert>
        </b:column>
    </b:row>
    <br />
    <b:panel id="serach-results-table">
        <b:dataTable rendered="#{searchPartialBean.valuesPresent}" value="#{searchPartialBean.getSearchList()}" var="patient">
            <b:dataTableColumn label="Date" value="#{patient.firstName}"/>
        </b:dataTable>
    </b:panel>
</h:form>
</b:tab>

您已将表单包装在选项卡中。两个小部件都定义了一个命名空间,该命名空间又为其中每个小部件的 ID 添加了一个前缀。可能就是这个问题。

我的第一个方法是添加一个冒号以指示您正在内部命名空间中搜索:

update=":search-results-table"

如果不行,可以使用BootsFaces的递归搜索表达式:

update="**:search-results-table"

但是,我最喜欢的方法是使用 CSS 伪 class,如下所示:

update="@(.search-results-table)"

<b:panel styleClass="search-results-table">