Sie können diese Server-Seite nicht verarbeiten . Der Dateityp wird auf der Clientseite validiert, ohne auf der Serverseite Code zu treffen. Daher sind alle Vorschläge, die vorschlagen, FacesMessage
manuell zu erstellen und/oder <p:message(s)>
explizit hinzuzufügen, unbedacht und ungetestet.
You should use jQuery. It solves everything.
Basierend auf dem fileupload.js
Quellcode, ist Ihre beste Wette auf das fiktive show
Ereignis des Nachrichten Container hören und dann die Nachrichten Container bewegen des Formulars zu beenden.
Erweitern Sie zuerst $.show()
, um das Ereignis show
auszulösen.
(function($) {
var originalShowFunction = $.fn.show;
$.fn.show = function() {
this.trigger("show");
return originalShowFunction.apply(this, arguments);
};
})(jQuery);
Dann einfach einen Zuhörer auf show
Ereignis erstellen, die im Grunde läuft, wenn Nachrichten Datei-Upload erscheinen und dann jede einzelne Nachricht analysieren und die renderMessage()
Funktion des <p:growl>
JS-API verwenden. Das folgende Beispiel geht davon aus, dass Sie irgendwo auf der gleichen Seite einen <p:growl widgetVar="growl">
haben.
$(document).on("show", ".ui-fileupload-content>.ui-messages", function() {
$(this).children().hide().find("li").each(function(index, message) {
var $message = $(message);
PF("growl").renderMessage({
summary: $(".ui-messages-error-summary", $message).text(),
detail: $(".ui-messages-error-detail", $message).text()
});
});
});
Hallo Tankhenk .., funktioniert nicht. –
Siehe den bearbeiteten Teil der Frage –
Nun, ich denke nicht, dass das möglich ist. – Tankhenk