Ich habe ein Formular in JSF 2.2:JSF nicht umleiten Anfrage nach Ajax-Datei Eingang
<h:form enctype="multipart/form-data">
<h:outputLabel>title *</h:outputLabel>
<h:inputText value="#{bean.title}" required="" />
<h:outputLabel>Image *</h:outputLabel>
<h:inputFile value="#{bean.picutreFile}" a:accept="image/*">
<f:ajax listener="#{bean.uploadPicture}" />
</h:inputFile>
<h:commandLink action="#{bean.save}">
Save
</h:commandLink>
</h:form>
Die Funktionen:
public String save() {
return "/index?faces-redirect=true";
}
public void uploadPicture() {
// Do nothing
}
Aber nachdem ich ein Bild auswählen und den Anruf von uploadPicture
Funktion erhalten, Die Funktion save
kann die Seite nicht umleiten. Es ruft save
, aber die Umleitung funktioniert nicht, und aktualisieren Sie nur die aktuelle Seite.
Wenn ich den Dateiupload überspringe, wird er normal umgeleitet. Wie kann ich es zum Arbeiten bringen?
EDIT
Ich habe bemerkt, dass wenn ich die Ajax entfernen <f:ajax listener="#{bean.uploadPicture}" />
es wie erwartet funktioniert. Aber ich muss diesen Ajax haben, weil ich das Bild nach dem Upload anzeigen möchte.
EDIT 2
Ich kann sehen, dass nach der Ajax genannt, die JSF am unteren Rand der Seite mit partial-response
Tag in seinen Körper eine seltsame iframe schafft, und wenn ich ‚Save` drücken dass Iframe leitet zum Ziel um. Warum das??
Welche JSF Impl/Version? Frühe 2.2 Versionen haben Kindheit Bugs mit h: inputFile. Siehe auch http://StackOverflow.com/Tags/JSF/info für Hinweise. – BalusC
@BalusC Wenn ich das JAR des JSF innerhalb der GlassFish Bibliotheken in NetBeans öffne, kann ich 'Bundle-Name: Mojarra JSF Implementation 2.2.12 (20150720-0848) https:/ /svn.java.net/svn/mojarra~svn sehen/tags/2.2.12 @ 14885', Ich benutze auch GlassFish 4.1.1 – nrofis