Problem mit Datendarstellung

ceene

Erfahrenes Mitglied
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
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:

Neue Beiträge

Zurück