Pessoal, promessa é dívida né! Demorei mto pra postar a segunda parte, tive problemas com trabalho, família e Trabalho de conclusão de curso que tomou todo o meu tempo!
Já temos o JSF 2.0, que simplifica e padroniza a criação de componentes, mas mesmo assim vou falar como fiz aqui, ainda pode ser útil pra muita gente. Então pra não deixa ninguém na mão:
Vamos criar um componente bem simples, bobo mesmo, mas ótimo pra dar uma idéia do que deve ser configurado: Primeiramento o componente que vamos criar será uma label com um texto: Ah, mas não implementaremos comportamento, não agora, ela será um caixa estática. Poderemos utilizar essa caixa onde quisermos no sistema, pra isso bastará fazermos o seguinte: Pense nas possibilidades! Esse é um exemplo bobo, mas quando implementei minha caixa de pesquisa vi o quanto a criação desse componentes é poderosa!
Primeiro vou mostrar a estrutura de arquivos que vamos precisar: caixa.xhtml - Esse é o arquivo onde ficará o nosso compontente. facelets.taglib.xml - Esse arquivo vai definir nossa biblioteca de componentes. web.xml - Nesse arquivo vamos colocar o parâmetro pra contar pro Facelets onde está a biblioteca de componentes.
Vamos começar pelo web.xml, nele devemos adicionar entre as tags e , o seguinte código: Parâmetro que determina a localização do descritor das tags dos componentes Facelets facelets.LIBRARIES /WEB-INF/facelets/facelets.taglib.xml
Com isso estamos criando um parâmetro de contexto para definir a biblioteca de tagLibs do facelets.
Com isso o Facelets será capaz de saber que o arquivo de biblioteca de componente está na pasta especificada em .
Agora veja a estrutura do arquivo facelets.tablib.xml: Abaixo descreverei as tags: - É a tag raiz, que especifica que esse arquivo é uma tablib, dentro dela podemos colocar quantas tags precisarmos. - É um nome de referência para essa taglig, quando formos usarmos essa taglib em uma página informaremos esse namespace no xmlns. - Define uma tag, podemos ter quantas tags quisermos. - O nome que essa tag terá. - O caminho do arquivo que corresponde à essa tag.
Bom, após criarmos esses dois arquivos nossa aplicação já está apta para usar taglibs, só falta criarmos o próprio componente que corresponderá a tag que queremos. O código da caixa de pesquisa seria bem simples, isso será feito no arquivo caixa.xhtml que ficará da seguinte forma:
Agora na página que você deseja atilizar seu componente basta fazer a seguinte chamada no xmlns chamando o namespace do seu taglib: e usar a tag de acordo com o que colocou no xmlns dessa forma, passando os atributos que podem ser utilizados pela tag: O resultado no navegador é o seguinte:
São grandes as possibilidades para essa solução! Podemos a partir dela criar componentes complexos com lógica inserida em classes que facilitarão muito o desenvolvimento e a modularização do seu sistema!
Postarei um componente mais complexo, agora que já sabem com criar um simples fica tudo mais fácil! Até o próximo!
"As pessoas podem duvidar do que você diz, mas elas acreditarão no que você faz. " [Lewis Cass]