Pô, Galera.
Estou realmente sofrendo pra aprender JSF huahuahuha
Estava tudo indo até eu precisar resgatar no Managed Bean uma lista de objetos selecionados na view.
Tenho um dataTable na view com um campo checkbox em cada linha.
Quero selecionar n registros e, no managed bean, trazer apenas esses que estão selecionados.
Bati cabeça, pesquisei, mas realmente ainda sou um zero a esquerda em JSF lol.
Cara… a pergunta pode ser meio idiota, mas é que eu realmente comecei a pegar JSF agora e num sistema já feito, então estou tendo que aprender o mais rápido possível.
Só pra eu tentar comecar a entender melhor…
Como seriam definidas (ManagedBean, BackingBean, etc) as classes TableBean e CarDataModel no exemplo que vc me passou?
Só pra ressaltar, no exemplo que eu te mostrei, os pontos importantes são outros, a propriedade selection do dataTable, e a coluna que define o selectionMode <p:column selectionMode="multiple" style="width:18px" /> É isso que vai te dar a funcionalidade que você quer.
Todos os itens selecionados serão adicionados ao array que está no selection. Lembre-se, tem que ser um array.
Ah tá. Viajei!
Achei que tinha alguma coisa a ver com o DataModel.
Entendi que eu passo uma chave do registro e depois só faço a comparação e tal.
Só não entendi onde eu defino a chave que vou passar pra poder comparar com o atributo certo de Chamada.
Também não entendi onde uso o getRowData. é o JSF que usa por tras dos panos? acho que sim, né?
Estou tentando.
É que, como disse, o sistema já estava feito e estou sem controle de versão ainda.
Ou seja… Se eu mudar e não souber voltar, ferrou. huahuahua
Então estou tentando modificar com bastante cuidado e tal.
Quando vc perguntou se eu consegui criar a lista, era a lista da view ou a lista que eu vou formar a partir dos objetos selecionados?
Blz. Vou modificar aqui.
Eu posso passar um List pro h:dataTable então, né? Não preciso mudar nada na tag, certo?
O ruim de não usar o DataModel é que tem uns metodos dele que são utilizados no ManagedBean, tipo o isRowAvailable, mas eu vou ignora-los por enquanto e tentar rodar com a lista mesmo.
Popular a tabela da view não era o problema.
O problema era marcar linhas dessa tabela e depois, no Managed Bean, eu conseguir criar uma lista apenas com os selecionados pra poder gerar um zip (eu buscaria um arquivo para cada linha selecionada).
Mas eu sofri tanto que resolvi meter um atributo transiente no meu modelo e usar o selectBooleanCheckbox pra setar esse valor.
então, quando eu selecionar uma linha e submeter, no Managed Bean eu percorro a lista e crio uma outra lista onde o atributo booleano que eu criei estiver como true.
setGambiMode(On);?
Minha dúvida agora é como gerar um zip sem ter que apelar pro JSP, já que eu preciso do HttpServletResponse pra poder fazer o donwload pelo browser o.O
mas acho que vou criar outro tópico pra isso. lol