titulos rejillas primeface prime faces espacio desplegable jsf jsf-2 primefaces download datamodel

jsf - espacio - rejillas en primefaces



p: commandButton con p: fileDownload y no ajax solo funciona en segundo clic (2)

El alcance "ver" en primavera no existe ... ¿Así que creaste el tuyo propio, verdad? Solo para comprobar ... tuve ese tipo de problema una vez, y creo que fue algo relacionado con la validación ... el atributo inmediato = verdadero resolvió mi problema.

Estoy usando JSF 2.0, Primefaces 3.4.2, Spring 3.1.2.

Me enfrento a un problema similar del tipo de este enlace: h: commandButton funciona desde el segundo clic .

Al igual que él, no estoy usando ajax en el <p:commandButton> pero estoy usando un <p:fileDownload /> dentro de la etiqueta del botón.

Tengo dos vistas: "list.xhtml" y "downloadView.xhtml". En myBean.java envío un DataModel de la vista "list.xhtml" para ver "downloadView.xhtml" como un atributo de solicitud como se muestra en el siguiente código:

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

El bean se anota con @Scope("view")

A la vista de "downloadView.xhtml" llené con éxito una dataTable con el DataModel enviado desde la solicitud. Pero el problema ocurre cuando hago clic en el botón para descargar el archivo. Solo funciona en el segundo intento. Ya traté de cambiar el retorno de mi método de nulo a "downloadView", pero el problema no se resolvió.

En el modo de depuración noté que solo ingresas en "downloadMethod ()" al segundo clic.

¿Alguien tiene una idea para resolverlo?

myBean.java

public String viewListMethod() { //some work here... FacesUtil.getServletContext().setAttribute("myDataModelFromRequest", this.myDataModel); return "downloadView"; }

descargarView.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>


Esto tiene algo que ver con el alcance de la página. Su problema se debe a la representación parcial de la página. Inicialmente, cuando carga la página, no se carga por completo y, por eso, el botón no forma parte de esa vista en particular cuando intenta hacer clic en el botón por primera vez. Intente hacer que vea la página adecuada o explícitamente desde el bean de respaldo antes de mostrar la página