Primefaces усовершенствованный FileUpload с MobileRenderKit
Работает ли Advanced FileUpload с MobileRenderKit?
Я пытался загрузить с помощью следующего кода:
upload.xhtml:
<h:form enctype="multipart/form-data"
rendered="#{eordner.uploadaktiv}">
<p:fileUpload id="dateiupload" fileUploadListener="#{upload.getfiles}">
</p:fileUpload>
<p:commandButton value="Hochladen..." />
</h:form>
uploadbean.java:
public void getfiles(FileUploadEvent event) {
System.out.println(event.getFile().getFileName());
}
Но fileUploadListener никогда не вызывается.
Когда я переключаюсь на обычный RenderKit, он вызывается.
Есть ли решение? Я хочу иметь возможность загружать несколько файлов.
Простой режим работает отлично
Я на Primefaces 5.2 Tomat 7.0.26 Java 1.0.7 Mojarra 2.2.10
Спасибо
1 ответ
Взгляните на исходный код FileUpload для PF mobile:
protected void encodeInputField(FacesContext context, FileUpload fileUpload, String clientId) throws IOException {
ResponseWriter writer = context.getResponseWriter();
writer.startElement("input", null);
writer.writeAttribute("data-role", "none", null);
writer.writeAttribute("type", "file", null);
writer.writeAttribute("name", clientId, null);
if(fileUpload.isMultiple()) writer.writeAttribute("multiple", "multiple", null);
if(fileUpload.getStyle() != null) writer.writeAttribute("style", fileUpload.getStyle(), "style");
if(fileUpload.getStyleClass() != null) writer.writeAttribute("class", fileUpload.getStyleClass(), "styleClass");
if(fileUpload.isDisabled()) writer.writeAttribute("disabled", "disabled", "disabled");
writer.endElement("input");
}
, говорит, что расширенный режим не поддерживается, но multiple
атрибут есть.
Так что попробуйте с multiple="true"
,