J'ai un datatable qui contient les données extraites de la base de données. J'ai affiché le tableau, et je veux faire une mise à jour de ces données en selectionnant une ligne.
J'arrive à sélectionner la ligne et l'éditer dans une nouvelle page jsp, mais quand je fais les modifications et je fais save j'obtiens cette erreur:
javax.faces.el.PropertyNotFoundException: Error testing property 'datemesur' in bean of type null
at com.sun.faces.el.PropertyResolverImpl.getType(PropertyResolverImpl.java:342)
at com.sun.faces.el.impl.ArraySuffix.getType(ArraySuffix.java:240)
at com.sun.faces.el.impl.ComplexValue.getType(ComplexValue.java:208)
at com.sun.faces.el.ValueBindingImpl.getType(ValueBindingImpl.java:345)
at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getConvertedValue(HtmlBasicInputRenderer.java:111)
at javax.faces.component.UIInput.getConvertedValue(UIInput.java:713)
at javax.faces.component.UIInput.validate(UIInput.java:638)
at javax.faces.component.UIInput.executeValidate(UIInput.java:849)
at javax.faces.component.UIInput.processValidators(UIInput.java:412)
.................
le tableau que j'affiche est dans la page affichemesure.jsp ::
<h:dataTable value="#{gestionvoixBean.mesureItems}" var="mesurelist" binding="#{gestionvoixBean.myDataTable}"
cellspacing="4" width="80%" rowClasses="paire,impaire" headerClass="titre" border="1">
<h:column>
<f:facet name="header">
<h:outputText value="Index de mesure"/>
</f:facet>
<h:commandLink action="#{gestionvoixBean.editMesurelist}">
<h:outputText value="#{mesurelist.id_mesure}"/>
</h:commandLink>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Date de mesure" style="FONT-FAMILY: 'Serif';"/>
</f:facet>
<h:outputText value="#{mesurelist.datemesur}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Zone de mesure" style="FONT-FAMILY: 'Serif';"/>
</f:facet>
<h:outputText value="#{mesurelist.zone_mesure}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Numéro fixe appelé" style="FONT-FAMILY: 'Serif';"/>
</f:facet>
<h:outputText value="#{mesurelist.numero_appele}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Temps de mesure" style="FONT-FAMILY: 'Serif';"/>
</f:facet>
<h:outputText value="#{mesurelist.temps_heures} : "/><h:outputText value="#{mesurelist.temps_minutes}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Position GPS" style="FONT-FAMILY: 'Serif';"/>
</f:facet>
<h:outputText value="X : #{mesurelist.positionX_GPS} , "/><h:outputText value="Y: #{mesurelist.positionY_GPS}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Type de mesure" style="FONT-FAMILY: 'Serif';"/>
</f:facet>
<h:outputText value="#{mesurelist.type_mesure}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Etat de la tentative d'appel" style="FONT-FAMILY: 'Serif';"/>
</f:facet>
<h:outputText value="#{mesurelist.etat_tentative}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Etat de communication" style="FONT-FAMILY: 'Serif';"/>
</f:facet>
<h:outputText value="#{mesurelist.etat_communication}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Appreciation" style="FONT-FAMILY: 'Serif';"/>
</f:facet>
<h:outputText value="#{mesurelist.appreciation}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Sélection"/>
</f:facet>
<h:selectBooleanCheckbox value="#{mesurelist.supprime}"/>
</h:column>
</h:dataTable>
la ligne que j'édite est dans la page editmesurelist.jsp:
<h:form>
<h:panelGrid columns="2">
<h:outputText value="Date de mesure" />
<h:inputText id="datemesur" value="#{gestionvoixBean.mesurelist.datemesur}" />
<h:outputText value="Zone de mesure" />
<h:inputText id="zone_mesure" value="#{gestionvoixBean.mesurelist.zone_mesure}" />
<h:outputText value="Numéro fixe appelé" />
<h:inputText id="numero_appele" value="#{gestionvoixBean.mesurelist.numero_appele}" />
<h:outputText value="Temps de mesure en heures" />
<h:inputText id="temps_heures" value="#{gestionvoixBean.mesurelist.temps_heures}" />
<h:outputText value="Temps de mesure en minutes" />
<h:inputText id="temps_minutes" value="#{gestionvoixBean.mesurelist.temps_minutes}" />
<h:outputText value="Position X GPS" />
<h:inputText id="positionX_GPS" value="#{gestionvoixBean.mesurelist.positionX_GPS}" />
<h:outputText value="Position Y GPS" />
<h:inputText id="positionY_GPS" value="#{gestionvoixBean.mesurelist.positionY_GPS}" />
<h:outputText value="Type de mesure" />
<h:inputText id="type_mesure" value="#{gestionvoixBean.mesurelist.type_mesure}" />
<h:outputText value="Etat de la tentative d'appel" />
<h:inputText id="etat_tentative" value="#{gestionvoixBean.mesurelist.etat_tentative}" />
<h:outputText value="Etat de communication" />
<h:inputText id="etat_communication" value="#{gestionvoixBean.mesurelist.etat_communication}" />
<h:outputText value="Appreciation" />
<h:inputText id="appreciation" value="#{gestionvoixBean.mesurelist.appreciation}" />
</h:panelGrid>
<h:commandButton action="#{gestionvoixBean.saveMyData}" value="Save" />
</h:form>
Dans GestionvoixBean:
public class GestionvoixBean {
...........................
private HtmlDataTable myDataTable;
private Mesurelist mesurelist;
// Actions ----------------------------------------------------------
public String editMesurelist() {
// Get selected MyData item to be edited.
mesurelist = (Mesurelist) getMyDataTable().getRowData();
return "editmesurelist"; // Navigation case.
}
// Getters ----------------------------------------------------------
public HtmlDataTable getMyDataTable() {
return myDataTable;
}
public Mesurelist getMesurelist() {
return mesurelist;
}
// Setters ----------------------------------------------------------
public void setMyDataTable(HtmlDataTable myDataTable) {
this.myDataTable = myDataTable;
}
public void setMesurelist(Mesurelist mesurelist) {
this.mesurelist = mesurelist;
}
// Actions ----------------------------------------------------------
public String saveMesurelist() {
if (mesurelist!=null)
{ System.out.print(mesurelist.getId_mesure());
return "affichemesure";
}
else return (null);
}
}
Je ne sais pas encore comment implémenter la méthode saveMesurelist pour enregistrer les modifications dans la base de données, j'ai voulou juste maintenant faire un affichage pour savoir si c'est juste ou non.
Est-ce que qqun peut m'aider svp à résoudre le problème et à implémenter la méthode saveMesurelist.
Merci.
Partager