[list]Tenho uma interface HTML onde o usuário pode adicionar um número infinito de caixas de texto, desejo que esses valores sejam submetidos a um backbean, mais especificamente a um atributo do tipo ArrayList.[/list]
[list]As caixas de texto são adicionadas através de código Javascript (jQuery). Como eu posso fazer isso? Ou seja, enviar N valores para um único atributo ArrayList?[/list]
Tentou mapear todos para o atributo no backing bean do arrayList ?
L
lucasvenez
Obrigado pela ajuda!
Eu pensei nisso. Mas não há como fazer no meu caso (nem sei se daria certo).
Veja, o formulário se inicia com uma única caixa de texto e o usuário adicionará mais caixas através de um botão.
Sendo assim, toda a configuração das novas caixas será feita através de javascript. O que fará com que a configuração do atributo value não seja feito com código Java. Dessa forma, colocando o valor ${meuBean.atributo} no input não será feito o mapeamento, mas sim será exibido como texto para o usuário.
L
lele_vader
Porque você não coloca o input como o do jsf ?
O que acontece ?
Pode tentar colocar no name também o seu atributo, apesar de nunca ter tentado.
Além disso pode tentar colocar só o nome, sem o ${meuBean.atributo}, e deixar somente name=“meuBean.atributo” ou value=“meuBean.atributo”
<?xml version='1.0' encoding='UTF-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"xmlns:h="http://java.sun.com/jsf/html"xmlns:f="http://java.sun.com/jsf/core"><h:head><title>Facelet Title</title></h:head><h:body><h:form><h:commandButtonvalue="Adicionar"actionListener="#{binding.adiciona()}"><f:ajaxrender="htmlPanelGrid"/></h:commandButton><h:panelGridbinding="#{binding.htmlPanelGrid}"id="htmlPanelGrid"/><h:commandButtonactionListener="#{binding.imprime()}"value="Imprime"/></h:form></h:body></html>
L
lucasvenez
Era isso o que eu precisava Amauri!
Me ajudou demais! Obrigado!
A
AmauriSpPoa
Fico Muito feliz, você foi a primeira pessoa que eu ajudei aqui, coloca resolvido no post.
L
lucasvenez
Amauri,
Você sabe como eu posso fazer os valores das caixas de texto quando eu faço o render?
Tentei ver se havia o envio dos dados para o array na hora de adicionar mais caixas de texto, mas os dados digitados não foram nem para o ArrayList e nem para os componentes Html do HtmlPanelGrid.
Se tiver alguma ideia agradeceria!
L
lucasvenez
Consegui resolver!
Apaneas coloquei o h:commandButton e o h:panelGrid e adicionei o atributo execute="@form" para ele enviar os dados do formulário.