Ich werde versuchen, so kurz wie möglich zu sein, mit mir bitteGibt es eine Möglichkeit, beim Klicken auf eine Schaltfläche kein ganzes Webformular zu senden?
"A.jsf" hier bleiben -> Managed Bean: Bohne "# {bean.list}": uns nehmen
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>
Dann wird der 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" -> Managed Bean: Bean2
...
<p:growl id="msgs" showDetail="true"/>
...
Wenn ich auf Upload klicke, bekomme ich eine Growl-Fehlermeldung "Du hast keine Berechtigung zum Hochladen.", Was gut ist. Aber wenn ich dann auf "Zurück" klicke, was mich zu B.jsf bringt, sehe ich die Growl-Meldung "Du hast keine Berechtigung zum Hochladen". nochmal. Was scheinbar passiert ist, als ich auf "Zurück" klicke, sende ich eine andere Formularanfrage zum Hochladen, die dann die gleiche Fehlermeldung erzeugt, die dann bei B.jsf angezeigt wird. Gibt es eine Möglichkeit, das zu beheben, indem ich den "Zurück" -Knopf in eine leere Form setze, weil ich jetzt zwei Knöpfe übereinander statt nebeneinander habe. Ich versuche, dies zu tun:
FacesContext.getCurrentInstance().addMessage("tom", msg);
die Hoffnung, dass es mit id = „tom“, so dann dem Knurren mit id = msgs Komponente senden würde, würde Last nicht bekommen, aber kein Glück. Ich versuche, das upload
Flag zu aktivieren, wenn ich auf die Schaltfläche Back
klicke, aber das Webformular wird angefordert, bevor die Methode, die die back
Navigation behandelt, aufgerufen wird.
Es ist nicht so kurz, wie ich es möchte daher dafür entschuldige ich mich wollen: D
Das Herausnehmen von 'ajax =" false "' auf dem 'p: commandButton' der' Back'-Schaltfläche verhindert, dass 'fileUploadListener' aufgerufen wird, verhindert aber auch' navigation flow'. Als Ergebnis, "Zurück" -Button nehmen Sie mich nicht, wo jedoch "Display: Inline" funktioniert super, vielen Dank für die Zeit, BalusC –
Gern geschehen. – BalusC