Campos Dinamicos em JSF

1 resposta
colored

Bom to precisando Criar em 1 certo trecho da página algo q seja tipo assim… Clica num Botão e um Campo Aparece, pq a pessoa pode ter mais de uma dessa informação para Colocar…
Eu já Procurei Na Internet Toda, Com JSF num consegui achar ninguem q tenha conseguido e eu so mais um que nao consegui :/. kkk

Bom pegando exemplos. eu montei um eskema assim…

<h:form>   
       
    <ui:repeat value="#{pessoaFaces.lista}" var="p">   
        <h:inputText value="#{pessoaFaces.pessoa.nome}" /> 
        <h:outputText value="#{pessoaFaces.pessoa.nome}" />  
        <br />   
    </ui:repeat>   
       
    <h:commandLink action="#{pessoaFaces.addField}" value="Add New" />   
    <h:commandLink action="#{pessoaFaces.deleteField}" value="Delete this" /> 
    <h:commandLink action="#{pessoaFaces.listar}" value="Listar" />  
       
       
    </h:form>

E No Bean…

public String addField(){
		Pessoa person = new Pessoa();
		lista.add(person);
		return "";
	}
	
	public String deleteField(){
		lista.remove(lista.size() - 1);
		return "";
	}
	
	public String listar(){
		for(Pessoa p1 : lista){
			System.out.println(p1.getNome());
		}
		return "";
	}

Q Serve pra Aparecer um Campo Novo, Excluir um Campo, e Seria pra Printar o que o usuario Digitou neh… Mas num da Certo…
Pq no Metodo Add ele cria um objeto novo, mas sei la ele n ta indo direito pro campo q eh criado dinamicamente…
Se alguem puder me dar uma luz, um caminho pra seguir pq ta foda, ja fiz d tudo e num consigo arrumar isso…

Muito Obrigado :D.

1 Resposta

maurenginaldo

Da para fazer o que vc quer, porém é um pouco complicado.

Uma das formas de fazer é utilizando a propriedade binding dos componentes JSF.
Todos os componentes visais do JSF podem ser criados a partir de uma classe java

javax.faces.component.html.HtmlInputText inputText;

inputText = new HtmlInputText();
//a partir daqui vc pode setar as propriedades do inputText que quiser através dos métodos set dele.

//No arquivo jsf vc faz assim

<rich:inputText binding="#{bean.inputText}" >

//o componente visual vai assumir o componente criado no java

Crie uma lista do tipo do componente que vc quer no java e no JSF faça a iteração por ela

Criado 18 de novembro de 2009
Ultima resposta 18 de nov. de 2009
Respostas 1
Participantes 2