JSF e reutilização de código, custom components

Olá pessoal, sou novo no JSF e estou com um problema…

Possuo várias páginas que exibirão um formulário semelhante, a difrença será um campo ou outro que deve aparecer ou não e o título da página.

Num protótipo utilizei custom component, ou seja, criei um formulário padrão e mandei os atributos para ele através das páginas que o chamavam. por exemplo:

pesquisaForm.xhtml:
<h:head>

Inserir Pesquisa

Com isso eu terei várias páginas que chamam um mesmo formulário. Em outra linguagem de programação para a WEB, como PHP, eu teria apenas uma página, que apresentaria algum conteúdo de acordo com a variável passada pelo método GET.

Minha pergunta é: neste caso, utilizando JSF 2.0, custom components é a melhor maneira de evitar repetição de código?

Desde já agradeço pelas respostas :wink:

Quando quero reaproveitar formulários em casos de uso como criar/editar eu prefiro usar apenas um ui:include. Já q assim eu deixo o código do formulário no mesmo diretório das páginas q o utilizam. Agora se vc pretende reutilizar esse formulário em vários pontos do seu aplicativo, eu não veja pq não fazer um composite-component.
Mas no seu lugar, ao invés de atributo managedBean eu usaria um atributo action e passaria o método. Isso deixaria o código mais legível.

Vlw Rafael! Vou dar uma pesquisada no que vc disse, mas acho que vou acabar usando os composite-components mesmo.

<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml"
          xmlns:cc="http://java.sun.com/jsf/composite">
<cc:interface>
    <cc:attribute name="title" />
    <cc:attribute name="action" method-signature="java.lang.String action()" />
</cc:interface>
<cc:implementation>
    <h:form>
        <fieldset>
            <legend>#{cc.attrs.title}</legend>
            <cc:insertChildren />
            <h:panelGroup layout="block">
                <h:commandButton value="Submit" action="#{cc.attrs.action}" />
            </h:panelGroup>
        </fieldset>
    </h:form>
</cc:implementation>
</html>

[quote=tiagoperes]Olá pessoal, sou novo no JSF e estou com um problema…

Possuo várias páginas que exibirão um formulário semelhante, a difrença será um campo ou outro que deve aparecer ou não e o título da página.

Num protótipo utilizei custom component, ou seja, criei um formulário padrão e mandei os atributos para ele através das páginas que o chamavam. por exemplo:

pesquisaForm.xhtml:
<h:head>

Inserir Pesquisa

Com isso eu terei várias páginas que chamam um mesmo formulário. Em outra linguagem de programação para a WEB, como PHP, eu teria apenas uma página, que apresentaria algum conteúdo de acordo com a variável passada pelo método GET.

Minha pergunta é: neste caso, utilizando JSF 2.0, custom components é a melhor maneira de evitar repetição de código?

Desde já agradeço pelas respostas :wink: [/quote]

Tiago, você seguiu algum tutorial para fazer seus custom components? Estou procurando informação a respeito, achei algum material, mas ainda não consegui fazer dar certo.

Muito obrigado