【发布时间】:2019-05-12 03:10:14
【问题描述】:
我试图显示一个标签,其值为用户上传的文件的文件名...
这是我的简单表格
<h:form>
<p:outputLabel value="#{indexBacking.fileName}" rendered="#{indexBacking.showLabel}" id="fileNameLabel"/>
<p:fileUpload id="uploadImage" mode="advanced"
dragDropSupport="false" required="true"
sizeLimit="5120000"
requiredMessage="Harap upload KTP anda"
allowTypes="/(\.|\/)(gif|jpeg|png|pdf)$/"
fileUploadListener="#{indexBacking.handleUpload}"
update="fileNameLabel"
auto="true"/>
</h:form>
这是我的后盾
public void handleUpload(FileUploadEvent event) {
showLabel = true;
System.out.println("file uploaded");
UploadedFile file = event.getFile();
fileName = file.getFileName();
}
但是每次我上传文件时,标签都没有显示...谁能解释一下为什么?谢谢
【问题讨论】:
-
在handeUpload 调用之前showLabel 是否设置为false?如果是这样,正如 Microbob 所说,您无法更新未渲染的组件。尝试用 panel 或 panelGrid 包装 outputLabel,然后更新 panel 或 panelGrid 而不是 outputLabel 本身
标签: primefaces jsf-2