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

p:CommandButton只需单击两次即可工作(JSF 2.2错误?)

支淮晨
2023-03-14

commandButton只在第二次单击时起作用

p:CommandButton与p:FileDownLoad和no ajax仅在第二次单击时起作用

列表来自

            <h:form>
                <p:dataTable value="#{proDocFolBean.selectedProDocs}" var="docs">


                    <p:column headerText="Document Name:">
                        <h:outputText value="#{docs.docName}"/>
                    </p:column>

                    <p:column headerText="Description">
                        <h:outputText value="#{docs.description}"/>
                    </p:column>



                    <p:column headerText="Date Created">
                        <h:outputText value="#{docs.dateCreated}">
                            <f:convertDateTime pattern="dd-MMM-yyyy" />
                        </h:outputText>
                    </p:column>

                    <p:column headerText="Classification">
                        <h:outputText value="#{docs.classification}"/>
                    </p:column>

                    <p:column>
***                        <p:commandLink value="Update" action="#{proDocFolBean.prepareUpdateDoc}"/> ***

                    </p:column>


                    <p:column>

                        <p:commandLink id="downLoadLink" value="Download" ajax="false">
                            <p:fileDownload value="#{proDocFolBean.downloadFromFolders}" 
                                            contentDisposition="attachment"/>
                        </p:commandLink>
....
                </h:form>
public String prepareUpdateDoc() {
    docToUpdate = selectedProDocs.getRowData();
    selectedId = docToUpdate.getProjectDocId();
    docsFacade.find(selectedId);

        return "UpdateProDoc";
}
<h:outputScript name="js/formbugfix.js" target="head" /> 
                <p:inputTextarea rows="30" cols="60" value="#{proDocFolBean.docToUpdate.description}" immediate="true"/>
                        <p>
                    <p:commandButton value="Change" action="#{proDocFolBean.updateProjectDoc}">
                        <!-- <f:ajax execute="@form"/> -->
                    </p:commandButton>
public String updateProjectDoc() {
    docsFacade.update(docToUpdate);
    return "ProSysHome";
}

如果我尝试使用h:commandButton或使用p:commandButton将ajax设置为false(不使用js脚本),表单只需刷新,更新的值不会合并到数据库中。如果我单独使用p:commandButton,我就能够使操作正常工作,但只能在单击两次之后。这是非常奇怪的行为,如果有任何帮助。提前道谢!

共有1个答案

席弘图
2023-03-14

我想我在Vsevolod的帮助下解决了这个问题。首先,完全没有必要使用单独的js脚本,因为正如Vsevolod所说,PF有自己的修复方法。

单独使用p:commandButton时,我会得到一个javascript错误

Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check http://xhr.spec.whatwg.org/.
VM94:25 Uncaught TypeError: Cannot read property 'debug' of undefined

这个错误似乎来自我单击UPDATE链接以调用prepareUpdateDoc方法并填充更新表单时的原始列表表单。在本专栏中将ajax设置为false解决了这个问题:

 <p:column>
 <p:commandLink value="Update" action="#    {proDocFolBean.prepareUpdateDoc}" ajax="false"/>

  </p:column>
 类似资料:
  • 好的,伙计们。我正在尝试创建一个小费计算器,我遇到了一些问题。问题是当用户输入一个值时,程序会询问(禁用enter按钮)用户是否希望包含提示,因此用户选择是或否。如果选择了其中任何一个,前面的问题就消失了,文字出现“小费包括在内”或“小费不包括在内”。现在,如果用户想要编辑上面的值,按钮将再次被启用,但是如果它点击了一个,它将再次询问用户是否想要包含提示。所以我的问题是,我怎样才能使它使它,无论那

  • 问题内容: 接下来的代码使用Modal react组件: 我正在尝试使用以下方式调用它: 和 我的意思是,单击此按钮后,没有任何显示。还有另一种方法可以调用该模式吗?我从以下位置导入模式: 从“反应-响应-模态”导入模态 问题答案: 您试图仅在单击按钮后才渲染模态,这对于非反应性环境是很自然的,但在反应中它以不同的方式起作用。在最简单的解决方案中,应始终呈现,当用户单击按钮时,将modal 属性更

  • 背景:试图在一个页面站点上为移动设备构建一个全屏菜单。 问题:需要单击#handle div两次才能执行操作。我尝试过以不同的方式使用follows,但我似乎在某些方面实现错误:live/die、bind/unbind、on/off、delegate/Undelegate。 我不明白我该如何解决我的问题。很抱歉在一些Divs上出现了错误的ID名。 HTML Jquery点击li时,用户将向下滚动页

  • 我的问题是,我的活动中的按钮需要单击两次,以使代码执行用onClick方法编写的代码。当我共享我的活动代码和布局文件代码时。请引导我解决这个问题。 活动(片段) 布局文件 而此片段正在另一个主要活动中初始化。

  • 问题内容: 我需要从HTML页面执行以下活动: 用户输入电子邮件和密码进行注册 用户单击时将表格发送到控制器 Control使用AJAX创建到RESTful Server的JSON请求,服务器进行相应的响应。 根据服务器的响应,用户应获得警报窗口,并在“提交”下方的当前页面()上显示一条消息。如果是“成功-已注册”或“失败-无法注册”。 但是,目前它的工作方式如下:1),2),3)正常工作。 用户

  • 问题内容: 因此,我在应用程序中有一个按钮和一个edittext。当我单击按钮并在edittext中写一些东西时,textview改变了。除了一件事以外,一切都应按其应有的方式进行。我必须单击两次按钮才能使其正常工作(仅在我第一次打开活动时)。打开活动后的第一次,我按下按钮,但没有任何反应,此后它应能正常工作。 我已经对此进行了研究,据我所知,引起麻烦的是专注,但我尝试了几件事却没有任何效果。 按