Bom dia!
Estou desenvolvento uma aplicacao em JSF (utilizando PrimeFaces). Gostaria de saber se é possível e como começar( não encontrei muito material a respeito) a reaproveitar componentes… Por exemplo, criar um <p:autocomplete que busca um objeto cidade pelo nome. e usar o mesmo componente tanto no cadastro de cidade como no cadastro de cliente mudando apenas o ManagedBean que vai trabalhar com ele, evitando assim ctrl+c e ctrl+v.
Qual o problema de se fazer <p:autocomplete value="#{pessoaMB.pessoa}" e em outra tela fazer <p:autocomplete value="#{cidadeMB.cidade}"?
Não vejo oq haveria de má prática aí.
RicardoYukito
Certo, mas eu preciso deixa a chamada do metodo de autocomplete, por exemplo:
o que eu penso é deixar esse componente prontinho. pra quando usar em outro facelet, mudar apenas o value="#{cidadeBean.obCidade}" para value="#{ClienteBean.obCidade}". Esse é um exemplo simples. Digamos que amanha eu quero trocar o effect de fade pra explode.
Eu teria que sair alterando em todo lugar que usei ele?
Hebert_Coelho
Você poderia criar um MB só com as configurações e passar via EL: <p:autoComplete effect="#{configMB.effectAutoComplete}" e esse MB iria no DB ou no arquivo de configuração procurar o valor correto. Seu MB poderia ser do tipo @ApplicationScoped que deixaria apenas uma instância para todo o JSF. [=
Caso o componente não aceite valor em Runtime aí você terá que criar um componente que extenda o autoComplete e configurar isso ao seu modo.