Upload via AJAX com o componente h:inputFile do JSF 2.2

Demorou quase 10 anos para que implementassem um componente de upload no JSF. O componente h:inputFile só foi criado na versão 2.2 da especificação. Apesar da longa espera, o componente já trouxe suporte nativo a AJAX e integração com a API do Servlet 3.

Utilizá-lo é tão simples quanto qualquer outro componente de entrada de dados, tanto é que podemos registrar conversores e validadores no componente de maneira semelhante. Além disso, basta usarmos a tag f:ajax para submetermos o formulário via AJAX, ou seja, nada de JavaScript! Por exemplo, o código abaixo irá disparar uma requisição AJAX após selecionarmos o arquivo:

<html ...
    xmlns:h="http://xmlns.jcp.org/jsf/html">

    <h:form id="form" enctype="multipart/form-data">

        <h:outputLabel value="Arquivo" for="arquivo" />
        <h:inputFile id="arquivo" value="#{importadorBean.arquivo}" 
            required="true" label="Arquivo" />

        <h:commandButton value="Importar"
            action="#{importadorBean.importa}" />
    </h:form>
</html>

Vale a pena conhecer o componente h:inputFile e ficar por dentro das suas atuais limitações que serão resolvidas em versões futuras do JSF.

O componente de upload de arquivos e muitas outras novidades do JSF 2.2 são exploradas no nosso curso de JSF 2 com Spring.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s