gpt4 book ai didi

jsf - p :commandButton with p:fileDownload and no ajax only works in second click

转载 作者:行者123 更新时间:2023-12-04 22:11:12 32 4
gpt4 key购买 nike

我使用的是 JSF 2.0、Primefaces 3.4.2、Spring 3.1.2。

我正面临这个链接的人的类似问题:h:commandButton works from the second click .

像他一样,我不在 <p:commandButton> 中使用 ajax但我使用的是 <p:fileDownload />按钮标签内。

我有两个 View :“list.xhtml”和“downloadView.xhtml”。在 myBean.java我从 View “list.xhtml”发送一个 DataModel 以查看“downloadView.xhtml”作为请求属性,如下面的代码所示:

FacesUtil.getServletContext().setAttribute("myDataModelFromRequest", this.myDataModel);

bean 被标注为 @Scope("view")
在 View “downloadView.xhtml”中,我使用从请求发送的 DataModel 成功填充了一个数据表。但是当我单击按钮下载文件时会出现问题。它只适用于第二次尝试。
我已经尝试将我的方法的返回值从 null 更改为“downloadView”,但问题没有解决。

在 Debug模式下,我注意到只有在第二次点击时才进入“downloadMethod()”。

任何人都有解决它的想法?

我的Bean.java
public String viewListMethod() {
//some work here...

FacesUtil.getServletContext().setAttribute("myDataModelFromRequest", this.myDataModel);

return "downloadView";
}

下载View.xhtml
<h:form id="formId" prependId="false">
<p:dataTable
id="dataTableId" var="myVar" value="#{myDataModelFromRequest}"
selection="#{cargaProcessoControlador.myArray}"
paginator="true" rows="10" paginatorPosition="bottom" paginatorAlwaysVisible="false">
<f:facet name="header">
bla bla bla
</f:facet>

<p:column selectionMode="multiple" style="width:18px" />

//collumns here...
</p:dataTable>


<p:commandButton id="btDownload" ajax="false" value="Download" icon="ui-icon-document" >
<p:fileDownload value="#{myBean.downloadMethod()}" />
</p:commandButton>
</h:form>

最佳答案

spring 上的范围“ View ”不存在......所以你创建了自己的,对吧?只是为了检查...
我曾经遇到过这种问题,我认为这与验证有关......
立即=真属性解决了我的问题。

关于jsf - p :commandButton with p:fileDownload and no ajax only works in second click,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13878620/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com