Bom dia pessoal,
tenho uma necessidade aqui, e não consegui atender ainda por falta de conhecimento. Eu tenho um h:inputText que recebe um valor numérico. Porém eu preciso que, ao sair desse campo (um lost focus por exemplo) sejam criados X inputText. Esse X é o valor fornecido no primeiro inputText.
Ex:
Digite o Valor: 3 (ao sair do campo, ou coisa parecida)
<h:inputText 1 >
<h:inputText 2 >
<h:inputText 3 >
Explique um pouco melhor a regra. Se for muito complexo, você pode tentar criar um componente. Se for um pouco mais simples, você pode usar o a4j:repeat do Ajax4JSF e Richfaces.
Você deve fazer um loop antes pra escrever quantas linhas quiser… outra coisa nessa situacao eu fiz pra ser incluida valores em uma tabela, mais você pode usar o exemplo pra qualquer coisa.
[quote=Guitar_Men]Bom dia pessoal,
tenho uma necessidade aqui, e não consegui atender ainda por falta de conhecimento. Eu tenho um h:inputText que recebe um valor numérico. Porém eu preciso que, ao sair desse campo (um lost focus por exemplo) sejam criados X inputText. Esse X é o valor fornecido no primeiro inputText.
Ex:
Digite o Valor: 3 (ao sair do campo, ou coisa parecida)
<h:inputText 1 >
<h:inputText 2 >
<h:inputText 3 >
Aqui na empresa em que trabalho, foi criado uma estrutura que faz os componentes em JSF dinamicamente.
Dependendo da necessidade (que acho que é o seu caso) é interessante, criamos os componentes como objetos mesmo (new HtmlInputtext() - da biblioteca do JSF) e adicionamos na árvore de componentes do JSF, dentro de um Panel por exemplo.
Já respondi outra pessoa aqui no forum com esse mesmo problema…
Coloquei um breakpoint no meu bean e aparentemente o valor quantidade está sendo setado e chamado. Porém esse forach não esta iterando sobre o valor. Alguém tem alguma idéia do que possa ser ?
Coloquei um breakpoint no meu bean e aparentemente o valor quantidade está sendo setado e chamado. Porém esse forach não esta iterando sobre o valor. Alguém tem alguma idéia do que possa ser ?[/quote]
Se você usa o a4j, é mais vantagem usar a4j:repeat para isso.
Coloquei um breakpoint no meu bean e aparentemente o valor quantidade está sendo setado e chamado. Porém esse forach não esta iterando sobre o valor. Alguém tem alguma idéia do que possa ser ?[/quote]
Se você usa o a4j, é mais vantagem usar a4j:repeat para isso.
[]'s[/quote]
Interessante, nunca trabalhei com isso, você teria algum exemplo para me passar ?
Coloquei um breakpoint no meu bean e aparentemente o valor quantidade está sendo setado e chamado. Porém esse forach não esta iterando sobre o valor. Alguém tem alguma idéia do que possa ser ?[/quote]
Se você usa o a4j, é mais vantagem usar a4j:repeat para isso.
[]'s[/quote]
Interessante, nunca trabalhei com isso, você teria algum exemplo para me passar ?
[/quote]
Coloquei um breakpoint no meu bean e aparentemente o valor quantidade está sendo setado e chamado. Porém esse forach não esta iterando sobre o valor. Alguém tem alguma idéia do que possa ser ?[/quote]
Se você usa o a4j, é mais vantagem usar a4j:repeat para isso.
[]'s[/quote]
Interessante, nunca trabalhei com isso, você teria algum exemplo para me passar ?
[/quote]
Mesmo com o a4j:repeat não consegui. Pelos breakpoints que eu coloquei o valor esta sendo atribuido ao bean, porém na hora do repeat fazer a iteração o bean esta vaziu… Teria alguma outra forma de fazer ?? Até poderia ser um botão + do lado do meu input que quando eu clicasse ele adicionaria um campo de texto a mais…
Teoricamente, sim. Eu fiz, uma vez, uma tela inteira (bem complexa, por sinal) baseado nisso, num botão enviando um evento e recarregando via Ajax. Pode ser que seja mais fácil, sim.
Teoricamente, sim. Eu fiz, uma vez, uma tela inteira (bem complexa, por sinal) baseado nisso, num botão enviando um evento e recarregando via Ajax. Pode ser que seja mais fácil, sim.
Teoricamente, sim. Eu fiz, uma vez, uma tela inteira (bem complexa, por sinal) baseado nisso, num botão enviando um evento e recarregando via Ajax. Pode ser que seja mais fácil, sim.
[]'s[/quote]
Humm, pode me passar algum material sobre isso ??[/quote]
Não tenho mais… mas lembro que fiz tudo com richfaces e ajax4jsf, usando a:repeat e a:commandbutton (ou commandlink, não lembro).
Dá uma olhada no livedemo (aquele link que te passei), que a documentação que tem lá sobre os componentes é bem completa, deve ajudar bem.
Pessoal,
Consegui criar a rotina mas ainda estou com um problema. Tenho um h:inputText com um a4j:support no onkeyup que da um reRender numa área específica do meu form e chama uma action:
public void criarCampos() {
for(int i = 0; i < this.getNumero(); i++){
if (getValoresDinamicos() == null){
setValoresDinamicos(new ArrayList<String>());
}
getValoresDinamicos().add(new String());
}
}
Basicamente eu faço um for e crio um array de strings com a quantidade de campos informada em getNumero(). E no JSF eu tenho o código:
para criar os campos “dinâmicamente”. Tudo funciona as mil maravilhas, mas quando dou o submit do form, esses valores não são setados…
Alguém consegue me dar uma “luz” ??