entao cara deixa eu te mostrar como eu to fazendo
aqui existe uma classe onde cria os objetos, no caso text, combos, labels entre outros, aqui vai o exemplo de como vai criar um text, passo parametros e é criado com algumas opçoes de corres, tamanho e tudo mais.
private HtmlInputText texto;
public UIComponent CriaTexto(Integer maxLength, Integer size,
Boolean readOnly, Boolean required, Boolean styleObrigatorio,
String nome) {
Complementos comple = new Complementos();
texto = new HtmlInputText();
texto.setMaxlength(maxLength);
texto.setSize(size);
texto.setReadonly(readOnly);
texto.setRequired(required);
texto.setId(nome);
/* caso for obrigatorio terá uma formatacao diferente */
if (styleObrigatorio) {
texto.setStyle(comple.getStyleObrigatorio());
}
/*
* caso mesmo sendo obrigatorio mas readonly, ficara com a segunda
* formatacao
*/
if (texto.isReadonly()) {
texto.setStyle(comple.getSytleReadOnly());
}
return texto;
}
após isso eu adicono ele no meu HtmlPanelGrid.
private HtmlPanelGrid criaCampos;
criaCampos = new HtmlPanelGrid();
criaCampos.getChildren().add(
cria.CriaTexto(Integer.parseInt(splitComentario
.get(1)), Integer
.parseInt(splitComentario.get(1)),
Boolean.parseBoolean(splitComentario
.get(2)), Boolean
.parseBoolean(splitComentario
.get(2)), Boolean
.parseBoolean(splitComentario
.get(4)),campo));
no meu add, como tu pode ver, eu passo os parametros exigidos na hora de criar o meu objeto, até ai tranquilo, onde o meu HtmlPanelGrid, vai receber todos os objetos, seja 1 ou 1000… depois no meu xhtml eu faço assim
<h:panelGrid columns="2" binding="#{criaTela.criaCampos}" />
Éssa é a minha unica linha no meu xhtml, onde chama a classe que alimentao o meu HtmlPanelGrid;
o que eu nao sei como fazer é pegar os dados digitados no objeto que vai ser criado no xhtml e poder fazer um Insert ou um Update…algum tipo de transaçao.
Nao sei se consegui me explicar…espero que sim!
Obrigado!