Jul 22
Foi publicada no portal Java Magazine as 3 primeiras partes de uma série de vÃdeo aulas sobre os extras Seam Framework. Esta série abordará alguns recursos interessantes do Seam Framework como Geração de PDFs, Envio de e-mails, Integração com Captcha e Agendamento de Tarefas. Nesta série também procurei demonstrar através de um sistema de cadastro de notÃcias alguns recursos interessantes do RichFaces como Upload de múltiplos arquivos e auto-completar.
A primeira vÃdeo aula aborda a criação e configuração da aplicação. É criado o banco de dados, criação dos formulários e aplicado restrições de acesso a pasta dos cadastros de usuários, tags, anexos e notÃcias.
A segunda parte aborda a criação de uma classe de criptografia MD5, criptografia e validação de senhas no cadastro de usuário e customização da classe de autenticação de usuários usada pelo Seam Framework.
Por fim a terceira parte abordou a implementação do código necessário para fazer upload de arquivos usando o componente do RichFaces rich:fileUpload. No exemplo, foi limitado o tamanho máximo de arquivos, o tipo do arquivo (apenas imagens) e implementado a ação de modo que salvasse a imagem no Banco de Dados usando o Hibernate. Por fim foi apresentado também como pode ser realizado a exibição de imagens usando o a4j:mediaOutput.
As próximas vÃdeo aulas mostrarei a implementação do recurso de autocompletar, semelhante ao WordPress, e mostrarei também a geração de PDF e Envio de e-mails. Vale a pena conferir!
May 04
Estes últimos dias estive testando o componente “rich:fileUpload“. O componente é bastante interessante, porém é bastante sensÃvel. Encontrei incompatibilidades com componentes do próprio richfaces, do myfaces e com o seam framework.
Até o momento verifiquei que usar o componente “rich:fileUpload” dentro do componente “rich:simpleTogglePanel”. Todos os testes que eu realizei ele não chama o evento definido em fileUploadListener. Até onde eu percebi me parece que o parâmetro que o “rich:fileUpload” usa para controlar o envio dos arquivos é perdido quando ele está dentro do “rich:simpleTogglePanel“.
Outro problema do componente é a incompatibilidade da versão 3.2.0 com o Seam Framework. Seguindo um comportamento semelhante ao do problema acima o evento definido no fileUploadListener não é chamado. Pelo que eu vi no JIRA havia problemas com o ciclo de vida do Seam, porém estes problemas já foram solucionados.
Havia também problemas com o envio de diversos arquivos ao mesmo tempo. Todos estes problemas também foram corrigidos.
A dica é: se você estiver usando o Seam Framework e o RichFaces 3.20 e pensar em usar o rich:fileUpload, atualize para as versões:
Seam 2.0.2 Cr1 (ou superior)
RichFaces 3.2.1 (Sugiro pegar a versão mais recente)
API
Implementação
User Interface
Apr 28
Quem usa os componentes do Myfaces Tomahawk e RichFaces em um mesmo projeto, poderá ter problemas ao atualizar a versão do RichFaces para a versão 3.2. O problema é que a versão 3.2 tem um componente de upload em ajax que requer algumas funcionalidades extras que foram adicionadas ao filtro do RichFaces. Porém estas configurações entram em conflito com as funcionalidades do Filtro de extensão do Myfaces.
Os conflitos gerados impedem o funcionamento apenas dos componentes de upload de ambos os casos. Isto porque ambos criam um objeto para adaptar a requisição que envolve envio de arquivos (enctype=”multipart/form-data”). Vi em alguns fóruns de discussão do RichFaces que a maneira de contornar o problema seria alterar a ordem de declaração dos filtros, porém para alguns tipos de requisições esta solução não resolve.
Uma forma de resolver a incompatibilidade é sobrescrever um dos dois filtros e anular a funcionalidade de upload, é uma solução temporária que irá anular o funcionamento do componente de uploads do filtro sobrescrito.
Porém, uma forma eficaz de resolver o problema é a criação de um parâmetro para identificar qual componente de upload está sendo usado e o filtro trataria a criação ou não do objeto de adaptação o que acabaria com as incompatibilidades. Já fiz a requisição do JIRA, agora é aguardar as correções.
Comentarios recentes