Como passar o objeto selecionado em um <rich:dataTable> para sessão? [RESOLVIDO]
7 respostas
gtludwig
pessoal,
tenho em uma página uma implementação do rich:dataTable como mostra a figura anexa (não a consegui postar em qualquer host de imagens online por uma política de acessos aqui da empresa).
Nela tenho três a4j:commandLink, onde quero usar o objeto, editar informações dele ou apagar o registro respectivamente. Para a função de usar o objeto, implementei o a4j:commandLink assim:
1 - Primeira
Voce monta a tabela a partir de um datamodel.
privateDataModelobjetosTabela;publicDataModelgetObjetosTabela(){returnobjetosTabela=newListDataModel("lista de objetos");}privateObjetogetObjetoAlterarConsultarExcluir(){Objetotemp=(Objeto)objetosTabela.getRowData();returntemp;}publicvoidforwardEquip(ActionEventevent){System.out.println(event.getSource().getClass());Objetoo=getObjetoAlterarConsultarExcluir();selectedEquipId=o.getEquipId();System.out.println("selectedEquipId: "+selectedEquipId);}
publicvoidforwardEquip(ActionEventevent){System.out.println(event.getSource().getClass());StringequipID=getRequestParameter("selectEquipId");//esse é o name que vc colocou la no parametro.selectedEquipId=Integer.parserInt(equipID);System.out.println("selectedEquipId: "+selectedEquipId);}privateStringgetRequestParameter(Stringkey){returnFacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get(key);}
gtludwig
opa!
Gostei da opção do dataModel (até por que não consegui implementar a outra ainda! hehe!)… O Eclipse gerou o seguinte código do dataModel, mas não entendi o que significam os métodos overriden. Tens algum exemplo de utilização que podes me passar?
[EDIT] Remoção do código código da inteface [/EDIT]
thimor
voce gerol o new datamodel() como ele eh a interface ele gera estes metodos para voce implementar. vc tem q fazer como eu coloquei no meu codigo.
equips=newListDataModel("lista que voce pega do banco de dados pode ser ArrayList ou List"):
gtludwig
Agora, ao popular os campos da tabela, vêm os métodos do DataModel e não do objeto Equipment... Não tá faltando um cast para (AnamanEquipment) em algum lugar?