Como criar componentes do jsf dinamico -RESOLVIDO

Repassando o codigo vi que esta linha tbm esta diferente:

ValueExpression ve = expressionFactory.createValueExpression(elContext, "#{mbPessoa.filtroTeste}", String.class);

To passando o contexto tbm, tente.

  private void criarComponentes() {

        this.setPainel(new HtmlPanelGrid());
        this.getPainel().setColumns(2);

        HtmlOutputText hotTitulo = (HtmlOutputText) FacesContext.getCurrentInstance().getApplication().createComponent(HtmlOutputText.COMPONENT_TYPE);

        hotTitulo.setValue("Configuração do Relatório de Pessoas");
        this.setFormulario(new HtmlForm());

        FacesContext context = FacesContext.getCurrentInstance();
        ELContext elContext = context.getELContext();
        Application app = context.getApplication();
        ExpressionFactory expressionFactory = app.getExpressionFactory();

        ValueExpression ve = expressionFactory.createValueExpression(elContext ,"#{mbPessoa.filtroTeste}", String.class);

        //ValueBinding vb = app.createValueBinding("#{filtroTeste}");

        itxOperador = new HtmlInputText();
        //vb.setValue(context, vb.getValue(context));

        itxOperador.setValueExpression("value", ve);
        //itxOperador.setValueBinding("value", vb);
        //itxOperador.setValue(this.getFiltroTeste());
        this.getPainel().getChildren().add(itxOperador);
       // this.getFormulario().getChildren().add(this.getPainel());
    }

meu código ta exatamente assim, mudei pra add o contexto tbm, mais não funciona,vc fez alguma coisa de mais no xml(jsf)?

Obrigado

voce imprimi o atributo e aparace o conteudo?

Nao mudei mais nada, coloquei um sysout no gerarRelatorio e aparece oq eu digitei.

Muito obrigado pela ajuda, infelismente, continua o problema …

so para desencargo de consciencia posta seu jsf page pra mim.

<?xml version='1.0' encoding='iso-8859-1' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core">
<body>
<f:view>
	<h:form binding="#{mbPessoa.formulario}">
		<h:panelGrid columns="2">
			<h:selectManyCheckbox id="listaPessoasSelecionadas"
				value="#{mbPessoa.pessoasSelecionadas}" layout="pageDirection">
				<f:selectItems itemValue="#{pes}" var="pes"
					value="#{mbPessoa.pessoas}" />
			</h:selectManyCheckbox>
			<h:panelGrid binding="#{mbPessoa.painel}" columns="2">
			</h:panelGrid>
			<h:commandButton value="Gera relatorio"
actionListener="#{mbPessoa.gerarRelatorio}" />
		</h:panelGrid>
	</h:form>

</f:view>
</body>
</html>

Não funcionou…

Pessoal consegui resolver, peguei meu componente e atribui um id para ele, exmplo itxOperador.setId(“idItx”)

Obrigado a todos que me ajudou

erickfm8 você poderia postar seu código completo por favor? O método criarComponente está no seu bean??? Não estou conseguindo fazer. :frowning:
Desde já eu agradeço.

então isso foi ah mais de dois anos…

não tenho mais o codigo…

qual o problema q vc esta tendo?

bom dia.

Então galera, talvez com isso seja possível solucionar meu problema, o que eu pretendo fazer é o seguinte, tenho um site que é um agregador de links, eu gostaria de disponibilizar um codigo aos meus usuarios que ele renderizasse no site dos meus usuarios os melhores links do dia com um limite de links escolhidos pelo usuario… é possível fazer isso ??

obrigado pela atenção

dealver, talvez esse post te ajude

http://www.guj.com.br/java/283453-arraylist-e-jsf-como-fazer

AmauriSpPoa era exatamente isso que eu queria, só que está dando uma exceção :

[quote]HTTP Status 500 -


type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

java.io.NotSerializableException: javax.faces.component.html.HtmlPanelGrid[/quote]

Se mudo o escopo para SessionEscoped ele abre e cria uma vez o InputText, mas na segunda adição diz:

Estou desesperada atrás de uma solução.

Obrigada.

No exemplo esta setando o value via createValueExpression tenta setar o id também no MB

é OBRIGATORIO colocar o id