JSF com AJAX

Gostaria de saber se é possível e se é vantajoso usar AJAX com JSF, vi alguns exemplos em PHP muito interessantes, porém é gerado muito código java script na página… Se for possível usar com JSF tem como separar esse código para não ficar muito scriptlet na página?

Obrigado

Scriptlet não tem muito a ver com Ajax não né, mas codigo Javascript tem que usar bastante mesmo, mas isso dá um bom ganho de performance, já que não é necessario ficar recarregando coisas sem necessidade, e permite uma interface mais intuitiva…

JSF tem componentes prontos com Ajax, dá uma olhada na pagina oficial do assunto:

http://java.sun.com/javaee/javaserverfaces/ajax/index.jsp
http://java.sun.com/blueprints/ajax.html

Scriptlet? Para que isso? Bem quando você precisar de usar scriptlets em JSF significa que é hora de criar um componente customizado. Bem veja algumas aplicações em JSF seguindo esta idéia:

https://bpcatalog.dev.java.net/nonav/webtier/index.html

:okok:

Não é que eu use scriptlet, mas pelos códigos de AJAX que eu vi com PHP achei que teria que usar de alguma forma scriptlet para usar AJAX com JSF, achei bem legal os componentes feitos em AJAX para usar com JSF, tentei usar esse do link abaixo para upload de arquivos mas não deu certo, alguém já conseguiu usar esse componente?

https://blueprints.dev.java.net/complib/v2/file-upload.html

Opa,

Como você está usando este componente?

:okok:

postProcessingMethod="#{FileUploadProcessing.postProcessingMethod}"

Não sei o que tem que ter na classe FileUploadProcessing para poder usar, já conseguiu usar esse componente, poderia mostrar um exemplo?

Obrigado

Opa,

mas esta classe FileUploadProcessing é apenas um exemplo, ela não existe, você é quem irá fazer… Neste caso se você olhar com maior profundidade, este atributo aí significa action que será executada após o arquivo ser enviado…

:okok:

Sim, eu entendi que é uma actcion, o FileUploadProcessing uma classe e o postProcessingMethod um método desta classe, mas o que teria que ter nesse método, os códigos para gravar o arquivo no disco ou o componente já faz isso?

Obrigado

Bem,

É o seguinte, você terá que associar ele a uma propriedade, aí você cria para salvar o arquivo que está armazenado na sua propriedade.

:okok:

Não entendi… como assim uma propriedade? Onde fica o código que grava o arquivo no disco?

Opa, ele fica justamente neste método que você declarar. Pelo que eu vi eles não tem um componente para o input file… use o do myfaces.

:okok:

Já tentei usar o do myfaces, consegui fazer funcionar igual do exemplo simple de upload de arquivos, mas ele só mostra na tela, como devo fazer para gravar o arquivo no disco?

Obrigado