dev.rafael, nao querendo abusar da tua ajuda, mas respondendo tua pergunta, sim uso JSF2.0, tomcat 7.0
eu tenho um managedbean que cria a minha tela e tenho uma classe que cria os objetos conforme eu passo os parametros
vou mostrar a classe que cria os objetos…(parte dela, já que o processo é parecido)
public class CriaObjetos {
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());
}
//texto.setOnkeydown("if(event.keyCode==9) {event.keyCode=13}");
/*
* caso mesmo sendo obrigatorio mas readonly, ficara com a segunda
* formatacao
*/
if (texto.isReadonly()) {
texto.setStyle(comple.getSytleReadOnly());
}
return texto;
}
}
e aqui vai parte do meu managedbean que cria os objetos.
public HtmlPanelGrid getCriaCampos() throws SQLException {
private HtmlPanelGrid criaCampos;
cxCampo = new CxCampos();
cria = new CriaObjetos();
ArrayList<NomeCampos> listaLinha = null;
try {
listaLinha = cxCampo.ListarLinhas(comple.getTabela());
} catch (Exception e) {
e.printStackTrace();
}
criaCampos = new HtmlPanelGrid();
for (int i = 0; i < listaLinha.size() && i < listaLinha.size(); i++) {
if (listaLinha.get(i).Registros(rec).equals("character varying")) {
try {
rec = rec + 2;
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));
} catch (Exception e) {
System.out.println("Erro ao adicionar campo. "+ e.getMessage());
}
}
return criaCampos;
}
Como tu pode ver, eu uso uma classe chamando a outra, simples ate entao…passos os parametros conforme eu pego do banco que sao fixos e ele consegue gerar minha tela, ate entao tudo certo para gerar, o problema é como conseguir pegar os dados digitados.
No meu xhtml eu somente faço isso…
<h:panelGrid columns="2" binding="#{criaTela.criaCampos}" />
Como que eu poderia fazer pra aplicar o PostAddToViewEvent nesse caso, ou fazer uma melhor pratica para conseguir extrair os dados digitados nos objetos?
Abraço e obrigado!