Eclipse 3.2.2
JBoss 4.2.2
Seam 2.1
Hallo alle zusammen
Ich habe ein kleines Problem mit meiner Datendarstellung. Ich habe eine Seite auf der ich nach Daten suchen kann und dann dort welche zur Bearbeitung auswählen kann. Die in einer EntityBean-Liste gespeichert werden.
Wenn ich nun einen Datensatz auswähle öffnet sich eine Seite zum bearbeiten, ändere ich nun etwas und klicke auf Update, dann werden vor dem Update noch Fehlerprüfungen gemacht. Kommt es dabei zu einem Fehler so wird der Fehler auf der Seite ausgegeben und ich gebe bei dem Button als Rückgabe-Wert return "" an.
Damit er auf der aktuellen Seite bleibt. Leider werden dann nicht mehr die aktuellen Daten angezeigt sondern immer der erste Datensatz aus der Liste.
Woran liegt das? Ich mache das gleich mit einem anderen Button, da gebe ich immer return "" zurück und es werden die aktuellen Daten angezeigt.
Das Problem tritt auf wenn er in den catch-Block der update-Funktion vom kundehdl kommt.
Die Funktion this.bearbeiten() gibt nur den String für den Link zur bearbeiten Seite zurück.
mein Button
strhdl
kundehdl
JBoss 4.2.2
Seam 2.1
Hallo alle zusammen
Ich habe ein kleines Problem mit meiner Datendarstellung. Ich habe eine Seite auf der ich nach Daten suchen kann und dann dort welche zur Bearbeitung auswählen kann. Die in einer EntityBean-Liste gespeichert werden.
Wenn ich nun einen Datensatz auswähle öffnet sich eine Seite zum bearbeiten, ändere ich nun etwas und klicke auf Update, dann werden vor dem Update noch Fehlerprüfungen gemacht. Kommt es dabei zu einem Fehler so wird der Fehler auf der Seite ausgegeben und ich gebe bei dem Button als Rückgabe-Wert return "" an.
Damit er auf der aktuellen Seite bleibt. Leider werden dann nicht mehr die aktuellen Daten angezeigt sondern immer der erste Datensatz aus der Liste.
Woran liegt das? Ich mache das gleich mit einem anderen Button, da gebe ich immer return "" zurück und es werden die aktuellen Daten angezeigt.
Das Problem tritt auf wenn er in den catch-Block der update-Funktion vom kundehdl kommt.
Die Funktion this.bearbeiten() gibt nur den String für den Link zur bearbeiten Seite zurück.
mein Button
Code:
<h:commandButton value="Logout" action="#{identity.logout}" styleClass="usrFormBtnSuchenBear" ></h:commandButton>
<h:commandButton value="Speichern/Suche" action="#{strhdl.updateKunde(kundehdl.selectedKunde)}" styleClass="usrFormBtnSuchenBear" ></h:commandButton>
<h:commandButton value="Löschen" action="#{kundehdl.delete}" styleClass="usrFormBtnSuchenBear" ></h:commandButton>
strhdl
Code:
public String updateKunde(Kunde kunde) {
//Kunde kunde;
String tmp;
//Prüfen ob in den Eingabefeldern eine Änderung vorgenommen wurde
if(AFlag >= 1) {
tmp = kundehdl.hwplz_abgleich();
if(!tmp.equals("")&&AFlag==1)
{
return tmp;
}
//Flag wieder auf 0 setzen
this.setAFlag(0);
if(kundedub.Kunde_CheckDublette(kunde).equals(""))
{
//Eintrag in Änderungstabelle, Update durchführen und auf neue Seite verlinken
if(toolBean.CheckAenderung("G", (new Integer(kunde.getKunden_Nr())).toString(), "", kunde.getCust_Id(),"")<=0 )
{
toolBean.GenAenderung("G", (new Integer(kunde.getKunden_Nr())).toString(), "", kunde.getCust_Id(),"");
}
return kundehdl.updateKunde();
}
//Sind Dubletten vorhanden wird der entsprechende Dialog aufgemacht
return "/kunden/kunde-dubletten.xhtml";
}
//Link zur Suchseite
return kundehdl.suchen();
}
kundehdl
Code:
public String updateKunde() {
String dummy = "";
String now;
try
{
//Bediener setzen
//Leere Meldung erzeugen falls eine Meldung angezeigt wird
facesMessages.add("");
//Letzten Bediener setzen
selectedKunde.setLetzter_Bediener(manager.getBediener());
//Äenderungsdatum setzen
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
Timestamp time = new Timestamp(System.currentTimeMillis());
now = sdf.format(time);
selectedKunde.setAenderung(now);
//Kunde updaten
toolbean.UpdKundeInDB(selectedKunde);
//Beschreibung erzeugen
toolbean.MakeBeschreibung(selectedKunde);
//Variable auf 0 setzen
checkDelete = 0;
//Auf die Such-Seite weiterleiten
return this.suchen();
}
catch(Exception e)
{
//Fehlermeldung ausgeben und Seite beibehalten
facesMessages.add(e.getMessage());
return this.bearbeiten();
}
}
Zuletzt bearbeitet: