Показать / скрыть другой элемент на основе простых символов p: fileUpload - PullRequest
0 голосов
/ 11 декабря 2018

Я пытался показать метку, значением которой является имя файла, загруженного пользователем ...

Вот моя простая форма

<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();
}

Но каждый раз, когда я загружаю файл, ярлык не показывался ... Может кто-нибудь объяснить мне, почему?Спасибо

1 Ответ

0 голосов
/ 11 декабря 2018

Ваш update="fileNameLabel" должен обращаться к форме h: так как это оболочка вашего ярлыка, которая должна быть отображена.

Изменить 14.12.2018

tryчто-то вроде этого:

<h:form> 
   <div jsf:id="uploadImageWrapper">           
        <p:outputLabel value="#{indexBacking.fileName}" rendered="#{indexBacking.showLabel}" id="fileNameLabel" for="uploadImage" />                                      
        <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="uploadImageWrapper"                               
                      auto="true"/>
   </div>
</h:form>   

Обратите внимание, что я также добавил атрибут for в метку, это не обязательно, но чище.

...