Instanzvariablen mit Strings in Bean vergleichen...

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hi,

ich habe folgendes Problem(eilt sehr!):

von einer JSP Seite werden Form Values, 1 Input Feld sowie 2 Selectfelder an eine Bean übergeben.

Die Bean soll nun die zwei Werte (source und target) der Select Felder mit einem String in der Bean vergleichen.

Im folgenden ein Code Snippet:
....
<code>
// Ergebnis berechnen
public double getErg() {


// if clauses
if ( source.equals("USD") && target.equals("EUR")){
erg = 3.0;

return erg;
}
else {

return erg;}
}</code>
....

leider erhalte ich immer folgende meldung des Tomcat:

javax.servlet.ServletException: An error occurred while getting property "erg" from an instance of class ...

root cause

java.lang.NullPointerException...

Woran liegts ?
 
B

bygones

Gast
kann es sein, dass die beiden Felder source und target nicht vorher initialisiert werden, d.h. sie sind null - und sie werden nicht über die Action gesetzt ? weil dann sind sie im Bean immer noch null --> nullpointer exception
 
G

Guest

Gast
Zunächst einmal vielen Dank für Deinen Beitrag.

Die Strings target und source sind allerdings initialisiert:
<code>
String amount;
String source;
String target;

</code>

Es ist vielmehr das Problem, dass die If Abfrage wohl nicht richtig funktioniert obwohl laut Eclipse syntaktisch korrekt.

Ein anderer Versuch liefert immer den erg value plus double 366.0

siehe:

<code>
// Ergebnis berechnen



public double getErg() {
//StringToDouble
//double xamount = Double.valueOf(amount).doubleValue();

// if clauses
if ( source == "USD" && target == "EUR"){
erg = 3.0;

return erg;
}
else {

return erg+366.0;}
}

</code>

Instanzvariablen soll man ja nicht mit == vergleichen sonder mit equals.

An dieser Stelle wird deutlich, dass nicht in der If Abfrage mit dem Vergleich "eingestiegen" wird sondern gleich der else-Wert übergeben wird. - Aber warum ???
 
B

bygones

Gast
als erstes: nicht die code tags nicht mit < > schreiben sondern mit [ ] !!

zweitens, wenn du nur
Code:
 String amount;
String source;
String target;
schreibst, sind die variablen nur deklariert, nicht initialisiert. Defaultmäßig werden sie dann auf null gesetzt
Code:
 String amount = "100";
String source = "USD";
String target = "EUR";
hier wurden sie nun auch initialisiert.

drittens, das mit dem '==' stimmt nur zum Teil. Durch das '==' vergleichst du bei Objekten ob es sich um die selbe Referenz handelt, nicht ob die Eigenschaften des Objekts gleich sind.

D.h. wenn du schreibst
Code:
 if ( source == "USD" && target == "EUR"){
ergibt das nie true, weil "USD" bzw "EUR" ein neues String Objekt sind und somit eine andere Refernez als source bzw. target !
--> Strings werden immer mit equals() auf Gleichheit überprüft !
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Strings - Partieller Abgleich mit Datenbank Allgemeines EE 4
G jsp: strings parsen Allgemeines EE 10
N Über Formular Bild auf FTP uploaden u. Strings in ne DB Allgemeines EE 3
R JSF Entitybean direkt in Sessionscoped Bean referenzieren Allgemeines EE 2
I Session löschen in Bean (Session Beans) Allgemeines EE 1
J Hello World mit Stateless Session Bean - Was mache ich falsch? Allgemeines EE 2
J Unterschied zwischen HttpSession und Stateful Session Bean Allgemeines EE 3
R Wie eine stateful session bean erneut "aufgreifen" Allgemeines EE 22
B [EJB] javax.inject.DefinitionException: bean not a Java type Allgemeines EE 5
T Einstieg in J2EE: Remote auf Bean zugreifen Allgemeines EE 11
H Bean läuft unter GlassFish, aber JBoss nicht Allgemeines EE 5
P Unterschied Session Scope / Stateful Session Bean Allgemeines EE 6
A Im PhaseListener auf Stateful Session Bean zugreifen Allgemeines EE 6
J geschützter Bean zugriff mit einem Rich-Client Allgemeines EE 2
2 JSTL Tags für eine Bean? Allgemeines EE 4
M Spring: Bean als Webservice freigeben Allgemeines EE 9
D Problem mit EJB: Bean soll Objekt eigener Klasse zurückgeben Allgemeines EE 2
V JSP BEAN Speichern von einer Zahl nach eingabe Allgemeines EE 2
H Bean Vergleich.gibts da schon was Feines? Allgemeines EE 13
B unterschied servlet und bean Allgemeines EE 2
F response.sendError() von Bean aus Allgemeines EE 6
A Session Bean mit Local-Interface nutzen Allgemeines EE 3
J prozesse aus der application-bean threadfähig? Allgemeines EE 4
G JSF dynamsiche style zuweisung aus Backing Bean Allgemeines EE 3
G Objekt von jsp an set Methode von Bean übergeben! Allgemeines EE 2
N Lokation von Bean Klassen? Allgemeines EE 5
M JSF Bean-Property mit Parameter aufrufen Allgemeines EE 12
M JSF & EJB "Bean not bound" Problem Allgemeines EE 4
R Zugriff auf Managed Bean aus einem Filter Allgemeines EE 2
boxi JSF von einem Bean auf ein anderes Bean zugreifen Allgemeines EE 3
J Bean in der init-Methode des Servlets instanzieren Allgemeines EE 9
Y JSF - einzelne Bean zerstören/ungültig machen Allgemeines EE 2
S In einer Bean-Methode an ndere Beans kommen Allgemeines EE 7
ichbindiegute Performance von Entity Bean create vs. JDBC insert Allgemeines EE 11
RaoulDuke EJB 3.0 - Exceptions aus Methoden einer Session Bean Allgemeines EE 2
A Selbstreferenzierter Entity-Bean Allgemeines EE 3
V Bean-Daten in JSF-JSP finden Allgemeines EE 3
G Entity Bean ignoriert Datenbank Allgemeines EE 16
J In einem Bean zugriff auf ein SessionBean? Allgemeines EE 2
F Session Bean -> Daten aus dem Servlet holen Allgemeines EE 11
F Package beim Cookie-setzten über BEAN nicht gefunden Allgemeines EE 4
M STRUTS/Cannot retrieve definition for form bean null on acti Allgemeines EE 4
E Methoden einer Bean aufrufen? Allgemeines EE 4
P jsf SelectOneMenu: Bean als SelectItem Value Allgemeines EE 5
P Struts Form Bean vs. Session Variable Allgemeines EE 6
G Exception creating bean of class . (Struts) Allgemeines EE 8
T statische Methoden versus Application-Bean Allgemeines EE 2
N Duplicate Bean Name (Tomcate 5.X, JDK 1.5) Allgemeines EE 2
M Unterschied zwischen Servlet und Bean/EJB Allgemeines EE 2
flashfactor Logging in einem Session-Bean Allgemeines EE 2
N Einbindung einer Bean in eine JSP (Tomcat-Server 5.5.x) Allgemeines EE 2
H Sichtbarkeit von Bean-Modifikationen? Allgemeines EE 2
H JSP, Session und Java-Bean Allgemeines EE 4
R html-form mit bean:write Allgemeines EE 10
R Use bean in scriptlet in struts Allgemeines EE 4
N Deployen einer EJB3.0 Bean Allgemeines EE 4
M Session Bean vers. Entity Bean Allgemeines EE 3
U Enterprise Bean mit dynamischer Datenbankauswahl? Allgemeines EE 3
T Filesystemzugriff von einer Bean? Allgemeines EE 6
C Mail von einer Session Bean aus senden Allgemeines EE 2
C Message Driven Bean soll keine Nachrichten empfangen Allgemeines EE 4
A Begriffe MBean JMX-Bean? Allgemeines EE 2
K JAVA BEAN DB Connection Prob Allgemeines EE 5
B Kein definiertes Bean? --- JDeveloper Allgemeines EE 5
C JSP mit java Bean Allgemeines EE 22
T Bean übertragen von Servlet zu Servlet Allgemeines EE 9
T Variablen von Bean über Servlet setzen Allgemeines EE 5
S XML parsen in Bean Allgemeines EE 2
S Struts: Problem mit <bean:message> - Tag Allgemeines EE 1
A Kommunikation zwischen Java Servlet und Bean Allgemeines EE 1

Ähnliche Java Themen

Neue Themen


Oben