我正在使用JSF 2.0,Primefaces 3.4.2,Spring 3.1.2.
我正面临着这个链接的类似问题:h:commandButton works from the second click.
和他一样,我没有在< p:commandButton>中使用ajax.但我正在使用< p:fileDownload />在按钮标签内.
我有两个视图:“list.xhtml”和“downloadView.xhtml”.在myBean.java中,我从视图“list.xhtml”发送一个DataModel,以查看“downloadView.xhtml”作为请求属性,如下面的代码所示:
FacesUtil.getServletContext().setAttribute("myDataModelFromrequest",this.myDataModel);
该bean使用@Scope(“view”)进行了分配
在视图“downloadView.xhtml”中,我成功地使用从请求发送的DataModel填充了dataTable.但是,当我单击按钮下载文件时,问题就出现了.它只适用于第二次尝试.
我已经尝试将我的方法的返回值从null更改为“downloadView”,但问题没有解决.
在调试模式下,我注意到只在第二次点击时输入“downloadMethod()”.
有人有想法解决它吗?
myBean.java
public String viewListMethod() { //some work here... FacesUtil.getServletContext().setAttribute("myDataModelFromrequest",this.myDataModel); return "downloadView"; }
downloadView.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>
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。