∑(Klick): 65687new:    u`re38.107.179.244     Bug gefunden?     Inhalt:([STRG+f] hilft :))
Startseite
Theme / Hintergrund setzen
Best viewed with a non-sucky browser [greez at http://www.metal-archives.com], in 1280 x 1024 resolution.

RC5-72 / Team #31659


Codebase, Hinweis:
Die Seiten "gewusst wie" geben Implemenmtierungsbeispiele für
verschiedene Aufgaben in unterschiedlichen Technoligien. Die 
Beispiele sind zumeist wenig dokumentiert. Es soll hier kurz und
knapp die (eine) Umsetzung des Problems nahegelegt werden. Nähere 
Informationen zu den verwendeten Codes finden sich im Netz :)


Java, JRE vs JDK, was sind die Unterschiede?
The "JDK" is the Java Development Kit. I.e., the JDK is bundle of software 
that you can use to develop Java based software. The "JRE" is the Java Runtime 
Environment. I.e., the JRE is an implementation of the Java Virtual Machine 
which actually executes Java programs. 
 
Typically, each JDK contains one (or more) JRE's along with the various 
development tools like the Java source compilers, bundling and deployment 
tools, debuggers, development libraries, etc. 
 
 
 
Yes JRE is Java Run Time Environment. The java programming language adds the 
portability by converting the source code to byte code version which can be 
interpreted by the JRE and gets converted to the platform specific executable 
ones. Thus for different platforms one has corresponding implementation of 
JRE. But JRE has to meet the specification JVM (Java Virtual Machine) Concept 
that serves as a link between the Java libraries and the platform specific 
implementation of JRE. Thus JVM helps in the abstraction of inner implementation 
from the programmers who make use of libraries for their programmes.
The JDK(Java Developmental Tool kit) comes along with java libraries 
and JVM embedded in it. Apart from these it comes along with the utility 
tools for byte code compilation "javac", Executing the byte codes through 
java programmes through "java" and many more utilities found in the binary 
directory of java. Speaking practically JDK is essential for developers, 
which comes along with library packages to develop Software programmes. 
While JRE is minimal set of programmes which executes the java class 
files developed by the software developers. 
 
 
 
 


Java / Java Server Fces/ Java Server Pages

1--> Java, Browser und files aus Java oeffnen

2--> Castings

3--> [Datum formatieren

4--> Variablen aus dem Facescontext auslesen

5--> Hashmap mit Iterator durchlaufen und keys und values listen

6--> Hashmap, simples Beispiel

7--> instanceOf ... kurzes Beispiel zur Verwendung

8--> interface implementieren:

9--> int auf integer casten

10--> Quellcode aus Javaklassen generieren, class-files in java-files

11--> Java, String nach Sonderzeichen splitten, Sonderzeichen escapen

12--> Java, Propertyfiles laden

13--> Java Prüfen ob ein Verzeichnis existiert

14--> Java, Datei(en) löschen

15--> Java, InetAddress: IP und Hostname ermitteln

16--> Java Log4J einfach

17--> LRU-Cache in Java

18--> Java, Maven: Dependencies in POM

19--> Java Maven abhängiges Projekt compipieren und als zip bereitstellen, maven-assembly-plugin

20--> Java, Maven: Ressourcen automatisch zu Projekten hinzufügen

21--> Java Server programmieren, java.net.ServerSocket

22--> Java, Beispiel für SimpleDateFormat

23--> Singeltons in Java

24--> Java, Xml via Jdom.saxbuilder appenden

25--> javascript, Elemente ein/ ausblenden

26--> Javascript, aus iframe heraus Text des Hauptframes ausblenden

27--> jsp, Ausgabe einer Arraylist aus Bean in jsp durch forEach - Tag

28--> jsp, Klassen in jsp-files importieren

29--> jsp, Requestparameter auswerten/ ausgeben

30--> jsp: hostname und ip

31--> JSP, Formularbutton mit Werten aus Messagefile beschriften

32--> JSP, Messagebundles

33--> voneinander abhängige selectboxen

34--> Map iterieren, Key Value Paare auslesen

35--> mehrere Servlets in einer Web Applikation handeln

36--> runden auf exakt 2 Nachkommastellen

37--> Variablen aus Sessionmap auslesen

38--> Sonderzeichen (ü,ä,ö,ß...) für propertyfiles messages.de / messages.en

39--> Switch / Case Anweisung

40--> typisiertes Array anhand der aktuellen belegung eines Typ-Properties sortieren

41--> Variablen-Initialisierung mit variabler sowie fest vorgeschriebener Reihenfolge

42--> Xml via JDom schreiben, einfaches Beispiel

43--> Namespace- Deklaration in XML einfügen, JDom

44--> XML-Datei schreiben mittels JDOM


____ ____ ____ ____ ____ ____ ____ ____ ____

1--> Java, Browser und files aus Java oeffnen


Am Beispiel aus einer jsp:

____________________________666Seitenanfang666_____________________________


2--> Castings




INT TO STRING:
String requestIdString = 
Integer.toString(this.requestId);



Java - Converting int to string

String myString = Integer.toString(my int value)
*or*
String str = "" + i

 


Java - Converting String to int

int i = Integer.parseInt(str);
*or*
int i = Integer.valueOf(str).intValue();

 
 

*/double/**/ to String :/** *

String str = Double.toString(i);

 

*/long/**/ to String :/** *

String str = Long.toString(l);

 

 

*/float/**/ to String :/** *

String str = Float.toString(f);

 

 

*/String to double :/*

double d = Double.valueOf(str).doubleValue();

 

*/String to long :/** *

long l = Long.valueOf(str).longValue();

*or*

long l = Long.parseLong(str);

 

*/String to float :/** *

float f = Float.valueOf(str).floatValue();


*/decimal/**/ to binary :/** *

int i = 42;
String binstr = Integer.toBinaryString(i);


*/decimal/**/ to hexadecimal :/** *

int i = 42;
String hexstr = Integer.toString(i, 16);
*or*
String hexstr = Integer.toHexString(i);
*or** (with leading zeroes and uppercase)*



*/hexadecimal/**/ (String) to integer :/** *

int i = Integer.valueOf("B8DA3", 16).intValue();
*or*
int i = Integer.parseInt("B8DA3", 16);    



*/ASCII code to String/** *

int i = 64;
String aChar = new Character((char)i).toString();


*/integer/**/ to ASCII code (byte)/** *

char c = 'A';
int i = (int) c; // i will have the value 65 decimal



*/integer/**/ to boolean/** *
b = (i != 0);

 

*/boolean/**/ to integer/** *
i = (b)?1:0;



____________________________666Seitenanfang666_____________________________


3--> [Datum formatieren





public String getModifiedStartTime
(Date oStartTime) {
String result = "";
java.text.SimpleDateFormat sdfTo = new 
java.text.SimpleDateFormat("HH:mm");
result = sdfTo.format(oStartTime);
return result;
}





____________________________666Seitenanfang666_____________________________


4--> Variablen aus dem Facescontext auslesen




BEAN:
public String testmethod() {

        String a = "";
        ExternalContext extCont =
        FacesContext.getCurrentInstance().getExternalContext();
        Object b = FacesContext.getCurrentInstance().getExternalContext()
                  .getRequestParameterMap().get("editId");
        String meineId =
        FacesContext.getCurrentInstance().getExternalContext()
                .getRequestParameterMap().get("editId").toString();
        System.out.println(meineId);
        return a;
    }


IN JSF:



HINWEIS:
h:commandButton just not supports f:param. h:commandLink and any of
a4j:command supports.

____________________________666Seitenanfang666_____________________________


5--> Hashmap mit Iterator durchlaufen und keys und values listen




____________________________666Seitenanfang666_____________________________


6--> Hashmap, simples Beispiel


INHALT

____________________________666Seitenanfang666_____________________________


7--> instanceOf ... kurzes Beispiel zur Verwendung


INHALT

____________________________666Seitenanfang666_____________________________


8--> interface implementieren:



BEAN:


public class BigBean {
...
public DeathCertificateInterface getDeathCertificateInterface() {
return deathCertificate;
}
...
}

public class DeathCertificate implements DeathCertificateInterface{
...
public void addCauseOfDeath(boolean usePropertyfile, String causeOfDeath) {
...
}
...
}

public interface DeathCertificateInterface {
...
public void addCauseOfDeath(boolean useMessageInPropertyfiile, String
causeOfDeath);
....
}

In irgendeiner Javaklasse:

...
bigBean.getDeathCertificateInterface().addCauseOfDeath([parameters]));
...



____________________________666Seitenanfang666_____________________________


9--> int auf integer casten


INHALT

____________________________666Seitenanfang666_____________________________


10--> Quellcode aus Javaklassen generieren, class-files in java-files


Um aus kompilierten Java-Klassen (.class) den Quellcode zu generieren (.java)
kann man einen Java-Dekompilierer verwenden. Eine Freeware-Lösung findet sich 
beispielsweise unter 
http://java.decompiler.free.fr/?q=jdgui. Allerdings ist das dekompilieren immer ein
wenig mit Vorsicht zu geniessen. Bei mir hat der generierte Javacode an einigen Stellen
Fehler aufgewiesen. Vor allem beim Exceptionghandling der einzelnen Klassenmethoden
haben sich öfters Fehler eingeschlichen.
____________________________666Seitenanfang666_____________________________


11--> Java, String nach Sonderzeichen splitten, Sonderzeichen escapen



____________________________666Seitenanfang666_____________________________


12--> Java, Propertyfiles laden


Um Konfigurationsdaten der Applikation zu Verwalten bieten
sich Prpoertyfiles an. Diese haben den Vorteil, das man das
Verhalten der Applikation schnell und einfach durch die Einträge
eines solchen Propertyfiles, eines simplen Textfiles, steuern kann. 
Es ist somit nicht notwendig den Javacode anzupassen.

____________________________666Seitenanfang666_____________________________


13--> Java Prüfen ob ein Verzeichnis existiert


Eine Javaanwendung mit einem Aufrufparameter (ein Verzeichnisname) starten und
prüfen ob dieses Verzeichnis existiert.


____________________________666Seitenanfang666_____________________________


14--> Java, Datei(en) löschen



Eine Datei via Java löschen:



Alle Dateien mit einer spezifischen Dateiendung löschen:


____________________________666Seitenanfang666_____________________________


15--> Java, InetAddress: IP und Hostname ermitteln


IP und Hostname ermitteln

____________________________666Seitenanfang666_____________________________


16--> Java Log4J einfach


Ein einfaches Beispiel zur Nutzung von Log4J (Logging)
Weitere Informationen findet man unter folgender url:

http://www.torsten-horn.de/techdocs/java-log4j.htm



____________________________666Seitenanfang666_____________________________


17--> LRU-Cache in Java


Caches dienen in der Informatik als Methode, Zugriffe auf bestimmte Daten zu beschleunigen, 
in dem diese vorgelagert/gepuffert werden. Sie sind in verschiedensten Bereichen zu finden, 
unter anderem auf Prozessoren, in Festplatten, aber auch in Technologien wie dem Web. 
Verschiedene Verdrängungsstrategien ermöglichen es, die beschränkte Kapazität eines Caches 
zu berücksichtigen, so dass nur wichtige Werte im Cache gelagert werden. Least Recently Used 
(LRU), ist eine solche Strategie, die häufig angewandt wird. Sie sortiert die Werte im Cache 
nach der letzten Nutzung. Wird auf ein Element über einen längeren Zeitraum nicht mehr 
zugegriffen, so wird es aus dem Cache verdrängt.

In Java lässt sich ein solcher LRU-Cache besonders einfach implementieren, da die Klasse 
java.util.LinkedHashMap bereits die wesentlichen Mechanismen unterstützt. Eine HashMap ist 
eine Hash-Tabelle, die Zugriffe auf Werte über ihre Schlüssel regelt. Zusätzlich verkettet 
die LinkedHashMap aber die Werte noch in einer Liste, womit auch eine Traversierung in 
Einfügereihenfolge ermöglicht wird. Mithilfe eines Flags in einem der Konstruktoren kann 
dieses Verhalten geändert werden, so dass bei jedem Zugriff das angesprochene Element neu 
in diese Liste eingereiht wird. Damit verwaltet die Liste die Zugriffe und ist Basis für 
die LRU-Strategie.

Die Methode removeEldestEntry() der LinkedHashMap wird bei jedem Schreibezugriff auf die 
Map, also nach Einfügeoperationen über put() oder putAll() automatisch aufgerufen und bietet 
die Möglichkeit, durch Überschreiben der Methode die Verdrängungsstrategie zu implementieren. 
Diese Methode gibt ein boolean zurück, ob der älteste Eintrag gelöscht werden soll. Es ist 
auch möglich, innerhalb der Methode selbst die Liste zu manipulieren, dann sollte 
allerdings die Methode immer false zurückgeben. Für den LRU-Cache reicht es aus, die Größe 
der Map mit dem gewünschten Maximum zu vergleichen. Ist der Inhalt der Map zu groß, so 
soll das letzte Element gelöscht werden.

Im Folgenden nun der Code dazu. Zu beachten ist noch, dass es sich um eine threadsichere 
Klasse handelt, da die Map explizit synchronisiert wird. 
INHALT

____________________________666Seitenanfang666_____________________________


18--> Java, Maven: Dependencies in POM


Denpendencies in der Pom deklarieren:

JSTL Dependency
Taglibs Dependency 


____________________________666Seitenanfang666_____________________________


19--> Java Maven abhängiges Projekt compipieren und als zip bereitstellen, maven-assembly-plugin


Maven: Alle Bibliotheken eines projektes in zip packen.

Ausgangspunkt sind 2 Maven Projekte, wobei das Projekt 1 
von Projekt 2 verwendet wird. Somit ist in die pom.xml 
von Projekt 2 das Projekt 1 als Dependency anzugeben.

Nun soll Projekt 2 compiliert werden und alle benötigten Bibliotheken in einem
Archiv zur Verfügung stehen. Dieses Archiv soll natürlich ebenfalls die Bibliotheken
von Projekt 1 beinhalten, da ja Projekt 1 von Projekt 2 verwendet wird.






Um die Abhängigkeiten der Projekte zu erreichen wird die
Pom des Projektes 2 wie folgt erweitert:



Die Konfiguration des zu erstellenden Archivs mit allen Bibliotheken erfolgt 
in dep.xml, welche in der oben angeführten POM eingetragen ist:



____________________________666Seitenanfang666_____________________________


20--> Java, Maven: Ressourcen automatisch zu Projekten hinzufügen


Ressourcen definieren, die beim Kompilieren automaisch mit
in das Projekt (jar, whatever) eingefügt werden sollen. Hierfür
muss lediglich in der POM ein entsprechender eintrag unter ressources
getätigt werden.

____________________________666Seitenanfang666_____________________________


21--> Java Server programmieren, java.net.ServerSocket


Im Eclipse: neues Java-Projekt anlegen und dann unter „src“ die Server.java kopieren.
Anschließend einfach aus dem Eclipse als Java-Anwendung starten.
Den Port kann man im Quelltext konfigurieren.

____________________________666Seitenanfang666_____________________________


22--> Java, Beispiel für SimpleDateFormat


Schnell & einfach Datum mit SimpleDateFormat erzeugen

____________________________666Seitenanfang666_____________________________


23--> Singeltons in Java


Umsetzung des DesignPatterns Singelton in Java.

____________________________666Seitenanfang666_____________________________


24--> Java, Xml via Jdom.saxbuilder appenden


INHALT

____________________________666Seitenanfang666_____________________________


25--> javascript, Elemente ein/ ausblenden




____________________________666Seitenanfang666_____________________________


26--> Javascript, aus iframe heraus Text des Hauptframes ausblenden


Im der HauptJsp einen link auf eine Datei 
close.jsp einbauen.
(Sollte dies, wie bei mir, nicht funktionieren 
kann man einfach eine
jsp zum forwarden dazwischenhängen, welche dann 
die close.jsp
anzeigt.



____________________________666Seitenanfang666_____________________________


27--> jsp, Ausgabe einer Arraylist aus Bean in jsp durch forEach - Tag




____________________________666Seitenanfang666_____________________________


28--> jsp, Klassen in jsp-files importieren




____________________________666Seitenanfang666_____________________________


29--> jsp, Requestparameter auswerten/ ausgeben


Requestparameter (Aufrufparameter) einer jsp anzeigen und auswerten:

____________________________666Seitenanfang666_____________________________


30--> jsp: hostname und ip




____________________________666Seitenanfang666_____________________________


31--> JSP, Formularbutton mit Werten aus Messagefile beschriften


Buttons in Formularen mit Werten aus einem Messagefile beschriften.

Hierzu muss ein Messages-File im Projekt angelegt werden.
(Howto: siehe entsprechendes Topic)
Im Beispiel würde das Messagefile wie folgt aussehen:
	...
	START_TITLE=MeinTitel
	SUBMIT_BUTTON_CAPTION=MeinSubmitButton
	...
	
Daraufhin kann aus der jsp heraus wie folgt auf die Werte zugegriffen werden:

____________________________666Seitenanfang666_____________________________


32--> JSP, Messagebundles


Datei messages_de.properties / messages_en.properties im Projektordner src/main/java ablegen
Bzw. da wo die java-sourcen liegen.

HINWEIS: Legt man die Dateien in einem seperaten Ordner ab, bsp. src/main/java/messages muss
                  bei Verwendung von MAVEN folgender Eintrag in die POM getan werden




Die Datei in folgender Art aufbauen:
	  KEY=VALUE

Beispiel eines Eintrages:	  
      MYMESSAGE=Message aus Messages_de-properties

	  
Einbindung in die jsp:

____________________________666Seitenanfang666_____________________________


33--> voneinander abhängige selectboxen


Zwei voneinander abhängige Selectboxen programmieren.

Wählt man einen Eintrag in der einen Selectbox ändert sich die
Auswahl der anderen Selectbox.

Hier noch ein beispiel wie man die Aufgabe mit einer JSP und einem JS File lösen kann.
Die Datei option.js beinhaltet alle Javascriptfunktionen und wird am Anfang der JSP
deklariert.

____________________________666Seitenanfang666_____________________________


34--> Map iterieren, Key Value Paare auslesen




Original @: 
http://hanuska.blogspot.com/2006/08/improved-map-iteration_13.html


private Collection myStuff = ... public int calculateSize() { int count = 0; for (Iterator it = myStuff.iterator(); it.hasNext(); it.next()) { count++; } return count; } This can be easily fixed by public int calculateSize() { return myStuff.size(); } Another, more frequent example of bad performance is a condition where one wants to know if there are any objects in the collection, but does not really care how many there are. if (myStuff.size() == 0) { // do something } Remember size() method may possibly calculate the size and therefore generally is slower than a call to isEmpty() method. Therefore the fix is obvious. if (myStuff.isEmpty()) { // do something } Could you imagine that I once worked for a company where the senior developers did not know about Iterators? So instead of for (Iterator it = myStuff.iterator(); it.hasNext();) { Object item = it.next(); // do something with the item } they had for (int i = 0; i < myStuff.size(); i++) { Object item = myStuff.get(i); // do something with the item } and on top of that myStuff was a Vector, which is synchronized. Very sloooow code! Nevertheless my point is: Know your collections! Now back to the topic of improving the Map iteration. Well, it really depends what we need to do at each step of our iteration. If you need to iterate over the keys of the Map do this for (Iterator it = myMap.keySet().iterator(); it.hasNext();) { Object key = it.next(); // do something with the key } And if you need to iterate over the values of the Map do this for (Iterator it = myMap.values().iterator(); it.hasNext();) { Object value = it.next(); // do something with the value } But what if we need both the key and the value? The usual approach and very bad approach is to get the set of keys, iterate over them and get the value for each key. for (Iterator it = myMap.keySet().iterator(); it.hasNext();) { Object key = it.next(); Object value = myMap.get(key); // do something with the key and the value } What is wrong about this? Nothing! You can do it this way and it's perfectly fine. It is just very inefficient as at each iteration a map needs to look up the value for a given key. It is better to iterate over map entries. There is a special interface Map.Entry that can be used to retrieve the key and the value of each entry in the map. So the previous example can be transformed into for (Iterator it = myMap.entrySet().iterator(); it.hasNext();) { Map.Entry entry = (Map.Entry) it.next(); Object key = entry.getKey(); Object value = entry.getValue(); // do something with the key and the value }
____________________________666Seitenanfang666_____________________________


35--> mehrere Servlets in einer Web Applikation handeln


In der web.xml können mehrere Beans einer Webapplikation definiert werden.

____________________________666Seitenanfang666_____________________________


36--> runden auf exakt 2 Nachkommastellen



BEAN:


/**
* does exactly what his name tells *g*
* @param digit
* @return
*/
public double roundOn2AfterKomma(double digit) {
int stellen = 2;
double factor = Math.pow(10, stellen);
double rounded = Math.round(digit * factor) / factor;
return rounded;
}




____________________________666Seitenanfang666_____________________________


37--> Variablen aus Sessionmap auslesen




BEAN:


//        ____________________________________________________
// einfuegen facescontext:
    int wert = 0;

FacesContext.getCurrentInstance().getExternalContext().getSessionMap()
.put("rId",wert);



//____________________________________________________
// auslesen facescontext

        String xxx = FacesContext.getCurrentInstance().getExternalContext()
                .getSessionMap().get("rId").toString();
        System.out

.println("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
        System.out.println(xxx);
        System.out

.println("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
        int xxxInt = 0;
        try {
            xxxInt = Integer.parseInt(xxx);
        } catch (Exception e) {
            // TODO: handle exception
        }
        this.rId = xxxInt;
        this.dataAccessor = new DataAccess(this.rId);

----------666-------------
IN JSF:

normaler a4j- oder h- link mit jeweiligen parametern


____________________________666Seitenanfang666_____________________________


38--> Sonderzeichen (ü,ä,ö,ß...) für propertyfiles messages.de / messages.en



oe=u00F6
ae=u00E4
ss=u00DF
ue=u00FC
OE=u00D6
AE=u00C4
UE=u00DC
hochgestellte zwei: u00B2
tiefgestellte zwei: u2082



____________________________666Seitenanfang666_____________________________


39--> Switch / Case Anweisung


    public boolean moreStopsAllowed() {
        boolean returnValue = false;

        switch (getAccountType().intValue()) {
        case 0:
            if (displayTour.size() < 1) {
                returnValue = true;
                break;
            }
        case 1:
            if (displayTour.size() < 2) {
                returnValue = true;
                break;
            }
        default:
            if (displayTour.size() < 3)
                returnValue = true;
        }
        return returnValue;
    }

____________________________666Seitenanfang666_____________________________


40--> typisiertes Array anhand der aktuellen belegung eines Typ-Properties sortieren




BEAN:

(Am Beispiel des Typs BarPlotEntry)


der Aufruf:

BarPlotEntry[] array = new BarPlotEntry[] {
new BarPlotEntry(msg
.getString("TourBean.COSTBARPLOT_CAPTIONY1"),
costsCheapStrategy),
new BarPlotEntry(msg
.getString("TourBean.COSTBARPLOT_CAPTIONY2"),
costsComfortStrategy),
new BarPlotEntry(msg
.getString("TourBean.COSTBARPLOT_CAPTIONY3"),
costsEcoStrategy),
new BarPlotEntry(msg
.getString("TourBean.COSTBARPLOT_CAPTIONY4"),
costsFastStrategy), };
java.util.Arrays.sort(array);
return array;


Die Klasse Barplotentry:

public class BarPlotEntry implements 
Comparable{
private double value;
private String name;

public BarPlotEntry( String name, 
		double value ){
this.name = name;
this.value = value;
}

// Die Methode wird durch Comparable vorgeschrieben.
// Wenn "this < argument" dann muss die Methode 
// irgendetwas < 0 zurückgeben
// Wenn "this = argument" dann muss die Methode 
// 0 (irgendetwas = 0)
zurückgeben
// Wenn "this > argument" dann muss die Methode 
// irgendetwas > 0 zurückgeben
public int compareTo( BarPlotEntry argument ) {
if( value < argument.value )
return -1;
if( value > argument.value )
return 1;

return 0;
}

// @Override
// public String toString() {
// return name + " (" + value + " Lumen)";
// }

public double getValue() {
return value;
}

public void setValue(double value) {
this.value = value;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}



}

____________________________666Seitenanfang666_____________________________


41--> Variablen-Initialisierung mit variabler sowie fest vorgeschriebener Reihenfolge




BEAN:
static variablen definieren wobei reihenfolge der initialisierung
unbekannt ist:
public class PlanningResultsBean implements PlanningResultsInterface {
static int a = 6;
static int b = 6;
static int c = 7;
...

static variablen definieren wobei reihenfolge der initialisierung
festgeschrieben ist:
public class PlanningResultsBean implements PlanningResultsInterface {
    static {
        a = 6;
        b= 6;
        c= 7;
    }


____________________________666Seitenanfang666_____________________________


42--> Xml via JDom schreiben, einfaches Beispiel


Voraussetzungen:
jdom herunterladen unter http://www.jdom.org/dist/binary 
entpacken
jdom.jar in build in die Bibliotheken einbinden

____________________________666Seitenanfang666_____________________________


43--> Namespace- Deklaration in XML einfügen, JDom




____________________________666Seitenanfang666_____________________________


44--> XML-Datei schreiben mittels JDOM




import java.io.FileNotFoundException;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.sql.*;
import java.util.ArrayList;
import java.util.Vector;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.Text;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;

  
    
    /*
     * insert Db values 2 xml-file
     */
    private static void writeXml(Vector dataVector, ArrayList columnNames, String currentTable) {
        int colCount =     0;
        boolean dataStructuresOk = false;
        //int singleRowColumns = columnNames.size() * 2;
        

        if (dataVector.size() % columnNames.size() == 0) {
            dataStructuresOk = true;
        } else {
            System.out.println("DataStructures not valid, no xml will be created!");
            System.out.println("dataVector.size() : " + dataVector.size());
            System.out.println("columnNames.size(): " + columnNames.size());
            System.out.println("modulo != 0");
        }
        if (dataStructuresOk) {
            int currentRow = 0;
            Document doc = new Document();
            Element documentRoot = new Element("dbContent");
            
            int currentColumnNameIndex = 0;        
            Element relation = new Element("relation");
            for (int currentDataFieldIndex = 1; currentDataFieldIndex < dataVector.size(); 
			     currentDataFieldIndex = currentDataFieldIndex + 2) {            
                // Relation-ID:
                String iString = abnormalizer.intToString(currentRow);
                relation.setAttribute("id", iString);
                // Column-name:
                String colName = columnNames.get(currentColumnNameIndex);
                Element column = new Element(colName);
                // Column-Content:
                String colContent = dataVector.get(currentDataFieldIndex);
                if (colContent != null && colContent.length() > 0 && colContent.indexOf("u0007") > -1) {
                    int x = colContent.indexOf("u0007");
                    String vor = "";
                    String nach = "";
                    if (x > 0) {
                        vor = colContent.substring(0, x);
                        nach = colContent.substring(x+1);    
                    }
                    else{
                        vor = "";
                        nach = colContent.substring(x+1);
                    }
                    colContent = vor + nach;
                }
                column.addContent(new Text(colContent));
                relation.addContent(column);
                // id nach durchlauf aller Datensätze einer relation ++
                if (currentColumnNameIndex >= (columnNames.size()-1)) {
                    currentColumnNameIndex = 0;
                    currentRow++;
                    documentRoot.addContent(relation);
                    relation = new Element("relation");
                } else {
                    currentColumnNameIndex++;    
                }

            }
            doc.setRootElement(documentRoot);
            Format format = Format.getPrettyFormat();
            //format.setEncoding("iso-8859-1");
            format.setEncoding("utf-8");
            XMLOutputter xmlOut = new XMLOutputter(format);
            try {
                String saveTo = destinationDir + currentTable + ".xml";
                xmlOut.output(doc, new FileOutputStream(saveTo));
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            
        }
    }
    
}



____________________________666Seitenanfang666_____________________________



666