boolean im Bean abfragen

Status
Nicht offen für weitere Antworten.

rhöner

Mitglied
Ich habe ein Bean in dem ich in einer IF Anweisung einen boolean Wert abfragen möchte.

Bean:
Code:
public void onNaechsterDatensatz(ActionEvent event) {

      if (aenderung == true) 
	 System.out.print("Soll erst gespeichert werden?"); 
      ...
}

Die andere Datei in der das boolean steht:
Code:
public class Schaden {

      private boolean aenderung = false;

}

Das ganze wird auf ein Formular angewendet. Wenn man nun also in einem Feld einen Wert ändert und möchte zum nächsten Datensatz weitergehen, soll erst gefragt werden, ob man den geänderten Datensatz speichern möchte.
In den SET Methoden habe ich entsprechend "aenderung = true;" eingefügt.

Wie sage ich in der IF Anweisung im Bean, das er aenderung aus der Klasse Schaden abfragen soll? Ich komm nicht auf die Syntax.
 
G

Guest

Gast
Hast du denn eine getter/setter-Methode in deiner Klasse "Schaden" für das Attribut aenderung?

Des weiteren brauchst du eine Instanzvariable von Schaden in deiner Bean.

(Vorausgesetzt ich habe dein Problem richtig verstanden.)
 

rhöner

Mitglied
Die getter/setter-Methoden hatte ich bereits eingestellt. Hatte ich nur vergessen hier zu posten.

Code:
public boolean getAenderung() {
		return aenderung;
	}

public void setAenderung(boolean aenderung) {
		aenderung= true;
		this.aenderung = aenderung;
	}
 
G

Guest

Gast
Hast du denn auch die getter/setter-Methoden für das Attribut "aenderung" (auf das du schließlich zugreifen willst)? Aus deiner Antwort geht das nicht für mich hervor.
 

rhöner

Mitglied
Irgendwie bin ich heut völlig neben der Spur. Im Programm heißen die Methoden Objecthaschanged. Hab einfach blind kopiert. Zum besseren Verständnis hab ich es hier umbenannt.
 
G

Guest

Gast
Passiert schon mal ;). Hast du denn eine Instanzvariable vom Typ "Schaden" in deiner Bean? Wenn ja:

Code:
private Schaden schaden = new Schaden();

//Die Abfrage der Änderung

if (schaden.getAenderung()
{
//Mache was
}
 
G

Guest

Gast
rhöner hat gesagt.:
Die getter/setter-Methoden hatte ich bereits eingestellt. Hatte ich nur vergessen hier zu posten.

Code:
public void setAenderung(boolean aenderung) {
		aenderung= true;
		this.aenderung = aenderung;
	}

aenderung = true zu setzen und dann den übergebenen boolean-Wert zu setzen scheint mir wenig sinnvoll zu sein.
 

rhöner

Mitglied
Anonymous hat gesagt.:
aenderung = true zu setzen und dann den übergebenen boolean-Wert zu setzen scheint mir wenig sinnvoll zu sein.
Wieso den übergebenen boolean-Wert zu setzen? Den vergleiche ich doch in der IF Anweisung mit '=='.
 
G

Guest

Gast
Setter-Methoden "setzen" den Wert einer Variable nur . Sie machen nichts anders:

Code:
public void setAenderung(boolean aenderung) { 
      this.aenderung = aenderung; 
   }
 
G

Guest

Gast
Hast du das Problem gelöst, wenn ja wie? ;)

Ansonsten sag woran es noch hapert.
 

rhöner

Mitglied
sieht jetzt so aus bei mir:

Code:
public class Schaden {

    public static boolean aenderung = false;

    ...

    public boolean getAenderung() {
		return aenderung;
 	}



    public void setAenderung(boolean aenderung) {
		aenderung = true;
		this.aenderung = aenderung;
   	}
}

Code:
public void onNaechsterDatensatz(ActionEvent event) {

		...

		if (Schaden.aenderung == true) {
			System.out.println("Soll erst gespeichert werden?"); 
...
		}
}

Das Problem ist nur, wenn ich auf die Schaltfläche "nächster" gehe, kommt immer diese Meldung. Die soll ja eigentlich nur kommen, wenn was geändert wurde.
 

Murray

Top Contributor
Es wurde schon geschrieben, aber nochmal:
Das hier
Code:
    public void setAenderung(boolean aenderung) {
      aenderung = true;
      this.aenderung = aenderung;
      }
ist eigenlich Unsinn; das ist das gleiche wie
Code:
    public void setAenderung(boolean ganzEgalWasHierKommtDerWertWirdIgnoriert) {
      this.aenderung = true; //--- voellig unabhaengig vom uebergebenen Parameter
      }

Der Setter muss aussehen:
Code:
    public void setAenderung(boolean aenderung) {
      this.aenderung = aenderung;
      }

(Um solche Fehler auch in weniger trivialen Fällen zu vermeiden, sollte man sich angewöhnen, die Parameter solcher Methode final zu deklarieren, dann würde die überflüssige Zuweisung schon vom Compiler zurückgewiesen werden)
 

rhöner

Mitglied
Meinen Setter habe ich jetzt entsprechend geändert, aber die Meldung erscheint trotzdem jedesmal beim Klick auf die Schaltfläche, auch ohne Änderungen.
Ich habe sogar in der IF Anweisung die Variable wieder auf FALSE gesetzt.
 

Murray

Top Contributor
Setzt Du aenderung irgendwo direkt auf "true"? Oder gehst Du immer über den Setter?

Wenn ich Dich richtig verstanden habe, dann müsste aenderung immer dann auch "true" gesetzt werden, wenn sich eine andere Eigenschaft ändert. Insofern müssten dann alle anderen Setter (aber eben nicht setAenderung) in etwa so aussehen:
Code:
private String eineEigenschaft;

...

public String getEineEigenschaft() {
  return eineEigenschaft;
}

public void setEineEigenschaft( final String eineEigenschaft) {
  this.eineEigenschaft = eineEigenschaft;
  setAenderung( true);
}

...
 

Murray

Top Contributor
Also: aenderung wird mit false initialisiert, nur in den Settern der anderen Eigenschaften auf true gesetzt und ist trotzdem true, auch wenn nichts geändert wurde? Dann hilft nur ein Debugger - oder in diesem Fall vielleicht auch "poor man's debugging" (das setzt aber voraus, dass aenderung niemals ausserhalb des Setters direkt zugewiesen wird):

Code:
public void setAenderung( final boolean aenderung) {

  if ( aenderung) {
    new Exception(
        getClass.getName() + 
        ".aenderung: " + this.aenderung + " ->  " + aenderung
      ).printStackTrace( System.out);
  }
  this.aenderung = aenderung;
}
 

rhöner

Mitglied
Also die Sache oben ist soweit geklärt. Jetzt hab ich aber ein anderes bzw. weiteres Problem:

Code:
public class Schaden {
     ...
     public static boolean objecthaschanged = false;
     ...

rufe ich folgendermaßen auf:

Code:
public class SchadenBean extends GccApplicationBean implements GccApplicationInterface {
     ...
     public void onOeffneNaechstenSchaden(final ActionEvent event) {
          if (Schaden.objecthaschanged == true) {
          ...

das funktioniert ohne Probleme. Aber mein "Master" will, das ich mit "private boolean objecthaschanged = false" arbeite. Wie muß ich das dann im SchadenBean aufrufen? Hab schon die Vorschläge von Eclipse angeklickt und entsprechend den Code geändert, aber da geht nix.
 

Murray

Top Contributor
Wenn das Member in der Klasse Schaden private ist, dann kann man es auch der Klasse SchadenBean nicht aufrufen. In diesem Fall brauchst Du eine Zugriffsmethode in der Klasse Schaden
Code:
public static boolean hasObjectChanged(() {
  return objecthaschanged;
}

In SchadenBean kannst Du dann schreiben:
Code:
public class SchadenBean extends GccApplicationBean implements GccApplicationInterface {
     ...
     public void onOeffneNaechstenSchaden(final ActionEvent event) {
          if (Schaden.hasObjectChanged()) {  //--- das == true kann man sich sparen; die Methode liefert ja bereits einen Boole'schen Wert

Ich vermute allerdings, dass das alles zu kurz gesprungen ist: kann es denn wirklich immer nur einen einzigen Schaden geben? Dann geht das so. Kann es aber mehrere Schaden-Instanzen geben, dann dürfen das Member objecthaschanged und die Methode hasObjectChanged() natürlich nicht static sein. Und dann brauchst Du dort, wo Du auf den Zusatnd zugreifen wills (also in SchadenBean) auch eine Referenz auf das jeweilige Schaden-Objekt.
 

rhöner

Mitglied
Also quasi die Getter-Methode abfragen. Danke! Mein Problem war, das ich das zwar auf die Getter-Methode geändert hatte, ich aber die Klammern bei der Abfrage vergessen hab.

Merci!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Fehler mit Boolean. (Glaube ich zumindest) Allgemeine Java-Themen 6
D Boolean von ein anderem Java Programm während der Laufzeit ändern Allgemeine Java-Themen 23
cool_brivk24 Variablen abfragen von Boolean von anderer Klasse Allgemeine Java-Themen 12
C Boolean Array Allgemeine Java-Themen 4
J Boolean EventListener Allgemeine Java-Themen 2
E Boolean aus Klasse A als String in Klasse B ausgeben Allgemeine Java-Themen 4
A Boolean Array in Allgemeine Java-Themen 3
A boolean und prozesse Allgemeine Java-Themen 2
S Werte aus 2 eindimensionale boolean arrays mithilfe von logischen operatoren berechnen Allgemeine Java-Themen 6
Z Boolean Abfrage gibt kein Boolean zurück, aber warum? Allgemeine Java-Themen 6
Kr0e Synchronisieren: boolean,byte,char ? Allgemeine Java-Themen 2
B boolean return typ verwenden? Allgemeine Java-Themen 5
D falsche Annahme nach korrekter Auswertung (if, boolean) Allgemeine Java-Themen 2
S Boolean Ausgabe JasperReports Allgemeine Java-Themen 2
I Probleme mit Boolean-Methode Allgemeine Java-Themen 4
D Boolean Listener? Allgemeine Java-Themen 28
D public boolean return Allgemeine Java-Themen 8
E boolean Array in ein byteArray mit derLänge 5 Allgemeine Java-Themen 6
S Problem mit Boolean Variablen Allgemeine Java-Themen 8
B boolean array = byte array (platzverbrauch) Allgemeine Java-Themen 6
J Vector - Boolean Allgemeine Java-Themen 24
H boolean wert ändern Allgemeine Java-Themen 2
L boolean aus der main übergeben? Allgemeine Java-Themen 12
C public boolean containsAll(Collection c) Allgemeine Java-Themen 2
D Abbruch einer ViewScoped Bean in Arbeit Allgemeine Java-Themen 2
bueseb84 required a bean of type that could not be found. Allgemeine Java-Themen 2
D Bean Zustandsänderung registrieren Allgemeine Java-Themen 2
E Die if-Anweisung in einer Java Bean bzw. in einem Servlet? Allgemeine Java-Themen 8
D JSF Bean Attribute bei Seitenaufruf Allgemeine Java-Themen 6
T Bean & xhtml Allgemeine Java-Themen 10
B Daten aus Bean holen Allgemeine Java-Themen 5
A Standalone geht - JSP u. Bean nicht Allgemeine Java-Themen 6
M Acrobat Viewer Bean - EULA-Anzeige verhindern Allgemeine Java-Themen 4
M Problem bei PDF-Anzeige mittels Acrobat Viewer Bean Allgemeine Java-Themen 2
J die Bean oder das Bean Allgemeine Java-Themen 13
J bean + serialisierung + serialVersionUID Allgemeine Java-Themen 3
L Java Bean Allgemeine Java-Themen 8
H JSF - Wert an ein managed bean übergeben Allgemeine Java-Themen 2
M Bean Listener hinzufügen und Methode später überschreiben Allgemeine Java-Themen 27
ReinerCoder Case statt if else Abfragen?! Allgemeine Java-Themen 8
O Datentypen Wie kann ich den Typ einer ArrayList abfragen ? Allgemeine Java-Themen 7
VfL_Freak KeyEvent.VK_TAB im KeyListener abfragen Allgemeine Java-Themen 13
B Generelle Frage bei einer Webanwendung / Reduzierung von DB Abfragen Allgemeine Java-Themen 1
E Status eines USB Mikrofon abfragen Allgemeine Java-Themen 2
D TextBox Abfragen Allgemeine Java-Themen 2
kodela aktuelle Position des Hauptfensters abfragen Allgemeine Java-Themen 12
J Tonhöhe & Lautstärke abfragen? Allgemeine Java-Themen 3
K USB infos unter Linux abfragen? Allgemeine Java-Themen 2
P Threads Parallelisierte DB-Abfragen mit variabler Anzahl an Threads Allgemeine Java-Themen 4
MiMa Variableninhalte dynamisch abfragen Allgemeine Java-Themen 12
A Erste Schritte If Abfragen + Scanner Allgemeine Java-Themen 7
Z AD Abfragen mit Java! Allgemeine Java-Themen 3
L Abfragen ob Threads fertig Allgemeine Java-Themen 3
chuxXo BasicPlayer - Beendigung Abfragen (Allgemein) Allgemeine Java-Themen 21
P Name der Parent Klasse abfragen Allgemeine Java-Themen 8
H In windowClosing() abfragen, ob STRG gedrückt wurde Allgemeine Java-Themen 8
M Aktuelle Systemzeit und Datum abfragen Allgemeine Java-Themen 2
M CapsLock abfragen wenn Fenster wieder aktiviert wird Allgemeine Java-Themen 5
P Variablen Werte der Objektvariablen mit getFields() abfragen Allgemeine Java-Themen 2
P Klassen Template-Klasse für Datenbank-Abfragen erstellen Allgemeine Java-Themen 2
J XML Inhalt von Web abfragen Allgemeine Java-Themen 6
D Von mehreren Objekten eine Eigenschaft abfragen Allgemeine Java-Themen 11
S HTTP Filmgenre aus dem Internet abfragen! Allgemeine Java-Themen 6
M Zahl aktiver Threads einer Gruppe verlässlich abfragen Allgemeine Java-Themen 3
R Was ist hier falsch? Abfragen Allgemeine Java-Themen 3
E Unique Ids abfragen? Allgemeine Java-Themen 5
Airwolf89 Wahrheitstabelle abfragen Allgemeine Java-Themen 3
M ständiges abfragen einer .txt Allgemeine Java-Themen 2
S Zeitserver Abfragen und in Date speichern Allgemeine Java-Themen 5
V Hostname abfragen gelingt nicht immer Allgemeine Java-Themen 2
H Windows abfragen Allgemeine Java-Themen 2
M Enter Taste in Konsole abfragen Allgemeine Java-Themen 2
N IP-Adresse Eingabe abfragen? Allgemeine Java-Themen 4
J Mit Scanner-Klasse eine Datei zeilenweise einlesen und nur bestimmte Zeichen abfragen Allgemeine Java-Themen 11
C Batchdatei ausführen und Ergebnisse abfragen Allgemeine Java-Themen 8
M Vermeiden von instanceof Abfragen Allgemeine Java-Themen 3
M SQL-Installation abfragen Allgemeine Java-Themen 14
Z Wetterdaten abfragen Allgemeine Java-Themen 5
J Zweiter Prozess der alle x Sekunden etwas abfragen soll Allgemeine Java-Themen 2
R Zugriffsrechte abfragen Allgemeine Java-Themen 2
G Checkboxen abfragen,Auswahl sichern, JTable laden Allgemeine Java-Themen 2
G Mausbewegung abfragen? Allgemeine Java-Themen 2
C Binärbereich einer Variablen abfragen Allgemeine Java-Themen 8
S Datenbank Abfragen mit großen Datenmengen Allgemeine Java-Themen 22
H Mit Java Desktop abmessungen height/width abfragen Allgemeine Java-Themen 20
H Sekunden messen wie lange h.ibernate/jdbc abfragen brauchen Allgemeine Java-Themen 7
G Abfragen des types Allgemeine Java-Themen 7
I Am System angemeldeten Benutzer abfragen Allgemeine Java-Themen 11
P verfügbare COM Schnitstellen abfragen Allgemeine Java-Themen 4
P <null> in einer DB abfragen Allgemeine Java-Themen 4
S Wie Carriage Return Line Feed abfragen. Allgemeine Java-Themen 6
T Hibernate Criteria Queries - Abfragen von Collection-Members Allgemeine Java-Themen 2
E Viele if Abfragen auf viele Strings --> Alternative zu if Allgemeine Java-Themen 8
T Tastatur global abfragen Allgemeine Java-Themen 2
M Map gezielt abfragen? Allgemeine Java-Themen 5
MQue Vereinfachung von if- Abfragen Allgemeine Java-Themen 21
Chris_1980 Mausbewegung abfragen Allgemeine Java-Themen 4
E Events von inneren Klasse abfragen Allgemeine Java-Themen 7
B jre version in der html-datei für ein applet abfragen Allgemeine Java-Themen 5
S Prozessorauslastung abfragen Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben