Fórum dataTable salvar no banco de dados #397608
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
Gostei + 0
27/03/2011
Vagner Oliveira
E como seria esse filtro, para obter a sincronização.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)