Jsf p:commandButton更新-更改";“观点”;在第页?

Jsf p:commandButton更新-更改";“观点”;在第页?,jsf,primefaces,Jsf,Primefaces,这是一个奇怪的问题,如果可能的话,我不想泄露代码,所以我会尽全力解释到底发生了什么 基本上,我有一个commandButton,它执行AJAX操作,然后更新它所在的整个表单 此表单的工作原理如下: <h:form id="tabform"> ..... <p:commandButton update=":tabform" value="Save" ajax="true" onstart="savingDialog.show();" onsuccess="sa

这是一个奇怪的问题,如果可能的话,我不想泄露代码,所以我会尽全力解释到底发生了什么

基本上,我有一个commandButton,它执行AJAX操作,然后更新它所在的整个表单

此表单的工作原理如下:

<h:form id="tabform">

    .....

    <p:commandButton update=":tabform" value="Save" ajax="true" onstart="savingDialog.show();" onsuccess="savingDialog.hide();" actionListener="#{bean.saveContent}" /> <!-- styling makes it fixed position -->


    .....

    <p:editor id="ed1" />
    <p:editor id="ed2" />
    <p:editor id="ed3" />
    <p:editor id="ed4" />
    <p:editor id="ed5" />
    <p:editor id="ed6" />


</h:form>

.....
.....
当我点击保存按钮,我在编辑器5中,它会保存,然后把我放在编辑器2的中间。不是焦点,而是“浏览器视图的焦点”(如果有意义的话)

我可以确认它与commandButton上的更新有关。在更新之后,它似乎把我放在表格的中间。
有什么办法可以解决这个问题吗?

在服务器端执行任何操作后,使用上的
滚动到
方法滚动到特定组件。显然,这需要您事先设计一个方案,以了解您想要将页面升级到的组件。如果没有有意义的代码,您可以从以下内容开始:

public void saveContent(){
   //your implementation here
   RequestContext context = RequestContext.getCurrentInstance();
   context.scrollTo("tabForm:ed5")  

}

这并不是我想要的(基于我目前的设计),但我能够用这个答案来帮助我找到一种方法,在按下时拉动当前的滚动,然后在完成时重新分配窗口滚动。