[java]krijg een lege string niet veranderd.

Pagina: 1
Acties:

  • paragon
  • Registratie: April 2000
  • Laatst online: 04-09 18:58
Ik lees met een servlet een DB uit. De tabellen van deze DB moeten in tabel vorm of xml wergeven worden. De tabel vorm lukt en XML op zich ook alleen dan wanneer er een lege kolom passeert. In de tabel komt er dan netjes null te staan, maar in de XML krijg ik een nullpointer exception. Nu probeer ik deze af te vangen maar het lukt me niet. Ik heb het oa zo geprobeerd.
code:
1
2
3
4
5
6
7
out.print("<" + rsmd.getColumnLabel(i) + ">");
String value = rs.getString(rsmd.getColumnLabel(i));
if (value.equals("")) {
    value= value + "empty";
}
out.print(value);
out.print("</" + rsmd.getColumnLabel(i) + ">\n");

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
volgens mij zit de fout in value.equals( "" ) want waarschijnlijk is dat false omdat value niet "" is maar null. Dus je moet waarschijnlijk doen if value == null

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • paragon
  • Registratie: April 2000
  • Laatst online: 04-09 18:58
Ja dat vwas het, dacht dat ik die ook al geprobeerd had, maar blijkt dus van niet.

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Als je XML moet genereren kan je dit beter niet doen door stringetjes te plakken of iets naar een writer te schrijven. Er is dan namelijk geen enkele garantie dat je XML well-formed is. Je kunt jezelf bijvoorbeeld vergissen in je code, maar nog belangrijker: niet toegestane tekens als < in XML worden niet geescaped.

Je kunt daarom beter kiezen voor een XML api. Dit kan je op verschillende manieren doen:

1. DOM opbouwen en deze serializeren.
2. SAX events doorgeven aan een SAX ContentHandler die de zaak pretty-print.

Beide methoden hebben voor en nadelen, maar meestal werkt de tweede het makkelijkst als je eenmaal doorhebt hoe je dat aan moet pakken....

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment