Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 从托管bean调用函数并在完成后将焦点设置为所需组件_Jsf_Primefaces - Fatal编程技术网

Jsf 从托管bean调用函数并在完成后将焦点设置为所需组件

Jsf 从托管bean调用函数并在完成后将焦点设置为所需组件,jsf,primefaces,Jsf,Primefaces,我有一个p:commandButton,它从托管bean调用一个方法。我想再增加一个功能。因此,在调用该特定函数后,我想将焦点设置为ap:selectOneMenu 我的代码是: <p:selectOneMenu id="particulars" filter="true" filterMatchMode="startsWith" value="#{receiptMB.selectedFeeSchemeDetail.pla

我有一个
p:commandButton
,它从托管bean调用一个方法。我想再增加一个功能。因此,在调用该特定函数后,我想将焦点设置为a
p:selectOneMenu

我的代码是:

<p:selectOneMenu id="particulars" filter="true"
                 filterMatchMode="startsWith"
                 value="#{receiptMB.selectedFeeSchemeDetail.planId}"
                 style="width:120px !important;">

    <f:selectItem itemLabel="Select" itemValue="" />
    <f:selectItems value="#{receiptMB.incomeSchemes}" var="acc"
                   itemLabel="#{acc.feeInstallment}" itemValue="#{acc.planId}" />
    <p:ajax event="change"
            listener="#{receiptMB.onIncomeSourceSelect()}"
            update=":messageGrowl :receiptEntryForm:planId
            :receiptEntryForm:newVouchDetails txtQty totalAmount
            particulars :receiptEntryForm:planId :receiptEntryForm:receiptSource
            advAmtRemaining advCheckBox amtPaid" />
</p:selectOneMenu>

<p:commandButton value="#{bundle.add}" icon="ui-icon-plus"
                 partialSubmit="true" process="jvPanel autoCompleteData"
                 id="addVoucher" actionListener="#{receiptMB.loadTableData}"
                 update=":messageGrowl cmdSave :receiptEntryForm:newVouchDetails
                 txtQty totalAmount
                 particulars :receiptEntryForm:planId :receiptEntryForm:receiptSource
                 advAmtRemaining advCheckBox amtPaid">
</p:commandButton>


请向我推荐一些解决方案。

您可以在操作方法中使用RequestContext,如下所示:

RequestContext context = RequestContext.getCurrentInstance();
context.scrollTo("receiptEntryForm:particulars");

您可以签出primefaces文档和showcase以获取更多信息。

您可以在操作方法中使用RequestContext,如下所示:

RequestContext context = RequestContext.getCurrentInstance();
context.scrollTo("receiptEntryForm:particulars");


您可以查看primefaces文档和showcase以了解更多信息。

首先,您应该正确设置代码格式。使它更容易阅读。谢谢。代码中也有很多噪音,与具体问题无关,因此会分散潜在回答者的注意力。好的,我将尝试简化它。您正在通过使用
update
属性手动指定组件的ID来更新很多组件。将它们收集并包含到容器组件(如
)中,并使用
update
属性指定其
id
)将更好地简化代码。首先,您应该正确格式化代码。使它更容易阅读。谢谢。代码中也有很多噪音,与具体问题无关,因此会分散潜在回答者的注意力。好的,我将尝试简化它。您正在通过使用
update
属性手动指定组件的ID来更新很多组件。将它们收集并包含到容器组件(如
)中,并使用
update
属性指定其
id
)将更好地简化代码。首先,您应该正确格式化代码。使它更容易阅读。谢谢。代码中也有很多噪音,与具体问题无关,因此会分散潜在回答者的注意力。好的,我将尝试简化它。您正在通过使用
update
属性手动指定组件的ID来更新很多组件。将它们收集并包含到容器组件(如
)中,并使用
update
属性指定其
id
,可以更好地简化代码。我不确定它为什么不起作用,但可能与我可能键入了selectonemenu位置错误有关,确保作为参数传递给上下文的路径正确。scrollTo(“”);当您设置正确的路径参数时,它确实起作用了吗?您能粘贴您在context.scrollTo方法中尝试的内容吗?selectoneMenu组件是否在另一个容器(如tabView或accordionPanel)中?我按照您的建议粘贴了。selectOneMenu位于面板内。scrollTo需要一个clientId,因此请删除前导冒号。我不确定它为什么不起作用,但可能与我键入selectOneMenu位置错误有关,请确保将正确的路径作为参数传递给上下文。scrollTo(“”);当您设置正确的路径参数时,它确实起作用了吗?您能粘贴您在context.scrollTo方法中尝试的内容吗?selectoneMenu组件是否在另一个容器(如tabView或accordionPanel)中?我按照您的建议粘贴了。selectOneMenu位于面板内。scrollTo需要一个clientId,因此请删除前导冒号。我不确定它为什么不起作用,但可能与我键入selectOneMenu位置错误有关,请确保将正确的路径作为参数传递给上下文。scrollTo(“”);当您设置正确的路径参数时,它确实起作用了吗?您能粘贴您在context.scrollTo方法中尝试的内容吗?selectoneMenu组件是否在另一个容器(如tabView或accordionPanel)中?我按照您的建议粘贴了。selectOneMenu位于panel.scrollTo中需要一个clientId,因此请删除前导冒号。