Java-класс для создания объектапрограммно - PullRequest
0 голосов
/ 27 декабря 2018

Я создал простую jsf заявку для загрузки файла, но вместо создания jsf входного файла, подобного этому

<h:form id="fileToUploadForm" enctype="multipart/form-data">
    <h:inputFile id="fileToUpload"  required="true" f5:multiple="multiple"
           requiredMessage="No file selected ..." onchange="fileSelected();"
           render="FilesTable"/> 
    <h:commandButton type="button" onclick="uploadFile()" value="Upload" />
</h:form>

Я хочу создать его программно и добавить в форму.Например: htmlform.getChildren().add(<File Component>)

Ответы [ 2 ]

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

Поскольку я ранее использовал jsf 2.1, я не нашел этот класс,

 javax.faces.component.html.HtmlInputFile 

- это класс, присутствующий в jsf API 2.2 и выше, а

 org.omnifaces.component.input.InputFile

- это класс Iвстречается в омнифе как альтернатива.

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

Документация Primefaces предлагает использовать компонент FileUpload:

  • Вы можете использовать p:fileUpload с multiple="true"
  • Это будетсделайте то же самое, но я думаю, что это проще в использовании и обслуживании
  • Больше контроля, чем в нативном компоненте, особенно если вы используете JSF
  • Есть и другие параметры: sizeLimit, fileLimit, allowTypes и dragDropSupport

XHTML-файл:

<h:form>  
    <p:fileUpload fileUploadListener="#{fileUploadView.handleFileUpload}" mode="advanced" 
                  dragDropSupport="false" multiple="true" update="messages" fileLimit="3"
                  sizeLimit="100000 allowTypes="/(\.|\/)(gif|jpe?g|png)$/" />
    <p:growl id="messages" showDetail="true" />           
</h:form>

ManagedBean:

@ManagedBean
public class FileUploadView {

    private UploadedFile file;

    public UploadedFile getFile() {
        return file;
    }

    public void setFile(UploadedFile file) {
        this.file = file;
    }

    public void upload() {
        if(file != null) {
            FacesMessage message = new FacesMessage("Succesful", file.getFileName() + 
                                                    " is uploaded.");
            FacesContext.getCurrentInstance().addMessage(null, message);
        }
    }

    public void handleFileUpload(FileUploadEvent event) {
        FacesMessage msg = new FacesMessage("Succesful", event.getFile().getFileName() +
                                            " is uploaded.");
        FacesContext.getCurrentInstance().addMessage(null, msg);
    }
}

Ссылка:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...