dataTable salvar no banco de dados
20/03/2011
0
Bom dia pessoal eu tenho uma dataTable do primefaces e quero que as alterações feitas seja salva no banco de dados. Veja abaixo como foi feita a dataTable:
Repare que foi criado 3 colunas para vizualização e 2 para edição.
Abaixo veja como ficou o Bean:
Eu usei o DataModel para recuperar os valores, ai começa a dificuldade, no metodo salvar ele vai recuperar os dados, crei um JOptionPane para vizualizar as informações que são mostradas assim as treis primeiras colunas
que são de vizualizações o metodo consegue enxergar, as duas que são de edições ele não encherga, "deve estar perdendo o foco, devo trabalhar com alguma anotação especifica ou algo do genero", se alguem puder me ajudar grato desde já.
1 tela.
2 tela.
<h:form id="form"> <p:dataTable paginator="true" paginatorPosition="bottom" selectionMode="single" rows="30" var="can" value="#{relEngComJavaBean.dtm}"> <f:facet name="header"><h:outputText value="Lista de Candidatos"/></f:facet> <p:column headerText="Campus"> <h:outputText value="#{can.campus}"/> </p:column> <p:column headerText="Nome"> <h:outputText value="#{can.nome}"/> </p:column> <p:column headerText="CPF"> <h:outputText value="#{can.cpf}"/> </p:column> <p:column headerText="Curriculo"> <p:cellEditor> <f:facet name="output"> <h:outputText value="#{can.curriculo}"> <f:convertDateTime pattern="dd/MM/yyyy"/> </h:outputText> </f:facet> <f:facet name="input"><p:calendar pattern="dd/MM/yyyy" id="curriculo" value="#{can.curriculo}" valueChangeListener="#{relEngComJavaBean.salvar}" onclick=""/></f:facet> </p:cellEditor> </p:column> <p:column headerText="Matrícula"> <p:cellEditor> <f:facet name="output"> <h:outputText value="#{can.matricula}"> </h:outputText> </f:facet> <f:facet name="input"> <h:selectOneMenu id="matricula" value="#{can.matricula}" valueChangeListener="#{relEngComJavaBean.salvar}" onclick=""> <f:selectItem itemLabel="Escolha" itemValue=""/> <f:selectItem itemLabel="Matrículado" itemValue="matriculado"/> </h:selectOneMenu> </f:facet> </p:cellEditor> </p:column> <p:column > <p:rowEditor/> </p:column> </p:dataTable> </h:form>
Repare que foi criado 3 colunas para vizualização e 2 para edição.
Abaixo veja como ficou o Bean:
@ManagedBean @RequestScoped public class RelEngComJavaBean { private List<Candidato> listacandidatos = new ArrayList(); private DataModel dtm; private Candidato candidato = new Candidato(); private Candidato selectedCandidato; CandidatoPST candidatoPST = new CandidatoPST(); public RelEngComJavaBean() { carregarCandidatos(); } private void carregarCandidatos() { candidatoPST.obter_candidato(listacandidatos); dtm = new ListDataModel(listacandidatos); } public void salvar(ValueChangeEvent event){ carregarCandidatos(); JOptionPane.showMessageDialog(null,"Salvar, Nome: "+ ((Candidato) dtm.getRowData()).getNome()+" Data: "+((Candidato) dtm.getRowData()).getCurriculo()+" Matrícula: "+((Candidato) dtm.getRowData()).getMatricula()); //candidatoPST.manter_candidato(candidato); } public List<Candidato> getListacandidatos() { return listacandidatos; } public void setListacandidatos(List<Candidato> listacandidatos) { this.listacandidatos = listacandidatos; } public Candidato getSelectedCandidato() { return selectedCandidato; } public void setSelectedCandidato(Candidato selectedCandidato) { this.selectedCandidato = selectedCandidato; } public DataModel getDtm() { return dtm; } public void setDtm(DataModel dtm) { this.dtm = dtm; } }
Eu usei o DataModel para recuperar os valores, ai começa a dificuldade, no metodo salvar ele vai recuperar os dados, crei um JOptionPane para vizualizar as informações que são mostradas assim as treis primeiras colunas
que são de vizualizações o metodo consegue enxergar, as duas que são de edições ele não encherga, "deve estar perdendo o foco, devo trabalhar com alguma anotação especifica ou algo do genero", se alguem puder me ajudar grato desde já.
1 tela.
2 tela.
Vagner Oliveira
Curtir tópico
+ 0
Responder
Posts
25/03/2011
Dyego Carmo
Esta usando EclipseLink ?
Adicione um filtro para abrir a sessao nao VIEW... pelo que vejo esta faltando apenas a sincronizacao com EntityManager !
Responder
27/03/2011
Vagner Oliveira
E como seria esse filtro, para obter a sincronização.
Responder
Clique aqui para fazer login e interagir na Comunidade :)