Voy a tratar de ser lo más breve posible, por favor, quédate conmigo aquí¿Hay alguna manera de no enviar un formulario web completo al hacer clic en un botón?
"A.jsf" -> bean administrado: frijol "# {} bean.list": nos llevará a B.jsf
<p:growl id="msgs" showDetail="true"/>
<h:form id="myform1" enctype="multipart/form-data">
<p:panel header="Upload" style="font-size: 11px;">
<h:panelGrid columns="2" cellpadding="10">
<h:outputLabel value="Drawing:" />
<p:fileUpload fileUploadListener="#{bean.handleFileUpload}" update="msgs" allowTypes="*.*;"/>
</h:panelGrid>
<p:commandButton ajax="false" immediate="true" id="back" value="Back" action="#{bean.list}"/>
<p:commandButton ajax="false" id="persist" value="Persist" action="#{bean.handleRevision}" />
</p:panel>
</h:form>
Entonces el handleFileUpload()
if(!upload){
FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error", "You do not have permission to upload.");
FacesContext.getCurrentInstance().addMessage(null, msg);
}
...
"B.jsf" - bean> gestionan: Bean2
...
<p:growl id="msgs" showDetail="true"/>
...
Cuando hago clic en cargar, me da un mensaje de error gruñido "No tienes permiso para subir", lo cual es bueno. Pero cuando hago clic en "Atrás", que me llevará a B.jsf, veo el mensaje "No tienes permiso para subir". de nuevo. Lo que parece estar sucediendo es que al hacer clic en "Atrás", envío otra solicitud de formulario para cargar, que luego generó el mismo mensaje de error, que luego se muestra en B.jsf. ¿Hay alguna manera de arreglar esto, además de poner el botón "Atrás" en una forma vacía, porque ahora tengo dos botones de pie uno encima del otro, en lugar de uno al lado del otro. Trato de hacer esto:
FacesContext.getCurrentInstance().addMessage("tom", msg);
con la esperanza de que enviaría al componente con id = "Tom", por lo que entonces el gruñido con id = msgs, no llegaría carga, pero no hubo suerte. Intento girar el indicador upload
cuando hago clic en el botón Back
, pero se solicita el formulario web antes de que se llame al método que maneja la navegación back
.
No es tan breve como yo quiero que sea, por lo tanto, quiero pedir disculpas por ello: D
Sacar 'ajax =" false "' en 'p: commandButton' del botón' Atrás' evita que se llame a 'fileUploadListener', sin embargo, también previene' navigation flow'. Como resultado, el botón 'Atrás' no me lleva a ningún lado, sin embargo,' display: inline' funciona muy bien, muchas gracias por pasar tiempo, BalusC –
De nada. – BalusC