当前位置: 首页 > 知识库问答 >
问题:

从Backing Bean更新嵌套面板

高自怡
2023-03-14
    PrimeFaces instance = PrimeFaces.current();
    instance.ajax().update("threatForm:threatListPanel");

如果我尝试更新面板中的任何内容
primeFacesinstance=PrimeFaces.current();instance.ajax().update(“ThreatForm:ThreatListPanel:ThreatListPanelDiv”);
它抛出:java.lang.IllegalArgumentException:ThreatListPanel:

这是xhtml

<h:form id="threatForm">

    <!-- Update the threat list at regular intervals -->
    <p:poll interval="#{threatMonitorView.pollInterval}"  listener="#{threatMonitorView.updateThreatList()}" />

    <p:panel id="threatListPanel" header="Threat Monitor Page">
        <div id="threatListPanelDiv" class="threatPanel">
            <!-- column with threats listed -->
            <div class="threatTableColumn1">
                <p:column>
                    <p:dataTable id="threatListTable" var="singleThreat"
                        widgetVar="threatTable" value="#{threatMonitorView.threats}"
                        selectionMode="single"
                        selection="#{threatMonitorView.selectedThreat}"
                        rowKey="#{singleThreat.uniqueId}" scrollable="false"
                        sortBy="#{singleThreat.timeReceived}">

                        <!-- update the information area when a threat is selected -->
                        <p:ajax event="rowSelect"
                            listener="#{threatMonitorView.onRowSelectThreat}" />

                        <p:column headerText="Active Threats">
                            <!-- header stuff -->

                        </p:column>
                    </p:dataTable>
                </p:column>
                <!-- end of column 1 -->
            </div>
            <!-- End of threatTableColumn1 divider -->

            <!-- Threat info -->
            <div class="threatTableColumn2">
                <p:column id="threatTableColumn2Id">

                    Stuff in this colunm


                </p:column>
                <!-- column 2 end -->
            </div>
            <!-- End of threatTableColumn2 divider -->

            <div id="threatTableColumn3Div" class="threatTableColumn3">
                <p:column>

                    Stuff in this column

                </p:column>

            </div>
            <!-- End of threatTableColumn3 -->

            <div class="threatTableFooter">
                <p:commandButton value="Close" id="threatCloseButton"
                    action="#{threatMonitorView.closeThreatButton()}"
                </p:commandButton>
            </div>
            <!-- End of threatTableFooter divider -->
        </div>
        <!-- end of threatPanel -->
    </p:panel>

</h:form>

这是更新bean

public void updateThreatList() {

    if (tlm.isThreatListChanged()){
        PrimeFaces instance = PrimeFaces.current();
        instance.ajax().update("threatForm:threatListPanel:threatListPanelDiv");
        tlm.setThreatListChanged(false);
    }
}
<div jsf:id="threatListPanelDiv" class="threatPanel">

共有1个答案

廉子民
2023-03-14

修正了它。
这是两个问题的组合。首先,是否可以用JSF Ajax更新非JSF组件(纯HTML)?我将jsf:id添加到Div

其次,如何找出ajax更新/呈现组件的客户端ID?找不到从“bar”引用表达式“foo”的组件

它表示在HTML输出中查找实际的客户端ID

 类似资料:
  • 我有一个dynamodb表,它的一个属性包含一个嵌套的映射,我想更新一个特定的库存项目,该项目通过一个过滤器表达式进行过滤,从而从该映射中生成一个项目。 如何编写一个更新表达式来更新位置到名称=欧宝的项目的“就位三”,标签包括“x1”(也可能是f3)?这应该只更新第一个列表元素位置属性。

  • 我想在具有指定 URL 的相应文档中将嵌套的“已爬行”更新为 True。 我对mongodb相当陌生,我似乎无法弄清楚这一点,非常感谢任何帮助。

  • 我正在尝试更新嵌套数组中的值,但无法使其工作。 我的对象是这样的 提前谢谢!

  • 我有以下架构 我想为创建静态方法,以便根据给定的更新 我的情况与建议的复制相似,但不相同,因为那里的家伙知道所有的,而我不知道。

  • 我正在使用平均堆栈在网格中显示以下数组。 嵌套数组:

  • 问题内容: 我正在尝试更新嵌套数组中的值,但无法使其正常工作。 我的对象是这样的 我需要将值推送到“ answeredBy”数组。 在下面的示例中,我尝试将“成功”字符串推到“ 123 _id”对象的“ answeredBy”数组中,但是它不起作用。 我找到了此链接,但其答案仅表示我应该使用类似结构的对象而不是数组。这不适用于我的情况。我真的需要将我的对象嵌套在数组中 如果您能在这里帮助我,那就太