Eu preciso criar formulários JSF dinamicamente. Basicamente, eu não posso criar um formulário em meu .jsp/.xhtml, seja lá qual for o idioma, desta forma abaixo porque o layout dos meu formulários são definidos/parametrizados em banco de dados (longa história):
Quando eu digo que o layout dos meus forms vem do banco de dados, me refiro a regra de negócio que indicará, entre outras, por exemplo, que um campo “input” tem tamanho X, é posicionado no local X, etc. Então eu terei um “motor/builder” que irá processar tais regras e, consequentemente, mostrar/apresentar/renderizar isso num browser (resumidasso).
A Solução:
NÃO SEI AINDA porque não sei como criar formulários usando JSF/Richfaces/Facelets dinamicamente.
Eu não uso puro-e-simplesmente um servlet porque o core do MVC de minha app o é JSF e, portanto, não gostaria de perder suas validações, conversões, entre outros recursos.
Sei que é bem possível manipular a UIComponent base do JSF, mas como não sou tão hard-user do JSF tenho alguns medos, anseios, etc.
Pois é amigos, eu sinto cheiro de “gamba” a vista. Mas antes recorro a vós para uma última opinião.
Já fiz isso, você vai ter que criar eles em seu managed-beans e fazer um biding para o xhtml, tome coidado com o escopo do seu managed pois se for session os componentes podem ficar na memória para manter um estado de conversação com cliente e ocupar espaço desnecessário.
Tu tens por um acaso algum exemplo mínimo para que me orientar em não só como fazer mas também em quais recursos do JSF terei de me atentar? Seria de grande ajuda um exemplo mesmo que seja dummy like!
Vai adicionando os componentes no panel. obs: não esqueca de da um rerender no panel na view, existem componentes como o panel grid que pode criar tabelas para você organizar o seu formulário
Poxa Flavio, quando agora sim entendi quando disseram que o JSF visava trazer ao desenvolvimento web conceitos semelhantes aos víamos no Swing e AWT. Isso é muito parecido com Swing, por exemplo. Ficou bastante claro já, mas acredito que meus formulários serão muito mais complexos do que estes e vou precisar de uma documentação, etc.