Criar componentes HTML dinamicamente
Bom dia a todos.
Criei uma pagina para uma aplicação de questionário com componentes criados dinamicmente de acordo com o questionario criado, tenho entre outros componentes um InputText e um commandButton, consigo pegar os valores do meu Bean, no entanto qdo faço uma alteração em qualquer um destes valores, não consigo resgatar este novo valor pata alteração da classe. segue parte do codigo:
o inputText:
inputTextDescricao = (HtmlInputText) FacesContext.getCurrentInstance().getApplication().createComponent(HtmlInputText.COMPONENT_TYPE);
inputTextDescricao.setId("lblQuestaoDescricao");
ValueExpression ve = expressionFactory.createValueExpression(elContext, "#{alteraQuestaoQuestionarioDinamicoManagedBean.qstDescricao}", String.class);
inputTextDescricao.setValueExpression("value" , ve);
inputTextDescricao.setValue(questao.getDescricao());
panelGrid.getChildren().add(inputTextDescricao);
O commandButton:
botaoAltera = (HtmlCommandButton) application.createComponent(HtmlCommandButton.COMPONENT_TYPE);
botaoAltera.setValue("Alterar");
botaoAltera.setId("botaoAlteraOpc_" + questao.getId());
botaoAltera.setRendered(true);
id = Long.toString(questao.getId());
MethodExpression me = expressionFactory.createMethodExpression(elContext, "#{manutencaoQuestionarioManagedBean.alteraQuestao('" + questao.getId() + "','" + inputTextDescricao.getValue() + "','" + questao.getTipoQuestao() + "')}", Void.TYPE, new Class<?>[0]);
botaoAltera.setActionExpression(me);
panelGrid.getChildren().add(botaoAltera);
Parte do bean:
public String alteraQuestao(String idQuestao, String descricaoQuestao, String tipoQuestao){
System.out.println("PARAMETROS RECEBIDOS: \n " + idQuestao + "\n" + descricaoQuestao + "\n" + tipoQuestao);
Questao q = new Questao();
q = questaoFacade.findyById(Long.valueOf(idQuestao));
q.setDescricao(descricaoQuestao);
q.setTipoQuestao(tipoQuestao);
System.out.println("vou alterar a questao: " + q.getDescricao() + " >>>>>>>>>>>>>>>>>>>>");
questaoFacade.edit(q);
return "visualizaquestionariodinamico.xhtml";
}
Ja perdi um tempo considerável atras desta resposta sem sucesso, qualquer ajuda será grata.
Saudações
Criei uma pagina para uma aplicação de questionário com componentes criados dinamicmente de acordo com o questionario criado, tenho entre outros componentes um InputText e um commandButton, consigo pegar os valores do meu Bean, no entanto qdo faço uma alteração em qualquer um destes valores, não consigo resgatar este novo valor pata alteração da classe. segue parte do codigo:
o inputText:
inputTextDescricao = (HtmlInputText) FacesContext.getCurrentInstance().getApplication().createComponent(HtmlInputText.COMPONENT_TYPE);
inputTextDescricao.setId("lblQuestaoDescricao");
ValueExpression ve = expressionFactory.createValueExpression(elContext, "#{alteraQuestaoQuestionarioDinamicoManagedBean.qstDescricao}", String.class);
inputTextDescricao.setValueExpression("value" , ve);
inputTextDescricao.setValue(questao.getDescricao());
panelGrid.getChildren().add(inputTextDescricao);
O commandButton:
botaoAltera = (HtmlCommandButton) application.createComponent(HtmlCommandButton.COMPONENT_TYPE);
botaoAltera.setValue("Alterar");
botaoAltera.setId("botaoAlteraOpc_" + questao.getId());
botaoAltera.setRendered(true);
id = Long.toString(questao.getId());
MethodExpression me = expressionFactory.createMethodExpression(elContext, "#{manutencaoQuestionarioManagedBean.alteraQuestao('" + questao.getId() + "','" + inputTextDescricao.getValue() + "','" + questao.getTipoQuestao() + "')}", Void.TYPE, new Class<?>[0]);
botaoAltera.setActionExpression(me);
panelGrid.getChildren().add(botaoAltera);
Parte do bean:
public String alteraQuestao(String idQuestao, String descricaoQuestao, String tipoQuestao){
System.out.println("PARAMETROS RECEBIDOS: \n " + idQuestao + "\n" + descricaoQuestao + "\n" + tipoQuestao);
Questao q = new Questao();
q = questaoFacade.findyById(Long.valueOf(idQuestao));
q.setDescricao(descricaoQuestao);
q.setTipoQuestao(tipoQuestao);
System.out.println("vou alterar a questao: " + q.getDescricao() + " >>>>>>>>>>>>>>>>>>>>");
questaoFacade.edit(q);
return "visualizaquestionariodinamico.xhtml";
}
Ja perdi um tempo considerável atras desta resposta sem sucesso, qualquer ajuda será grata.
Saudações
Antonio Damas
Curtidas 0