∑(Klick): 42209new:    u`re38.107.179.227     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--> Java/JSF Links

35--> Map iterieren, Key Value Paare auslesen

36--> mehrere Servlets in einer Web Applikation handeln

37--> runden auf exakt 2 Nachkommastellen

38--> Variablen aus Sessionmap auslesen

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

40--> Switch / Case Anweisung

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

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

43--> Xml via JDom schreiben, einfaches Beispiel

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

45--> 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--> Java/JSF Links


Java

!!!!!Java 2 alle Methoden,Klassen...
telefonbuch - Google-Suche
Java - Programmieren in Beispielen
java programmierung beispiele - Google-Suche
Eclipse - Workshop - Schulung - Tutorial - Howto - Einführung
Java dates - JavaWorld
Whether you are dealing with financial transactions or planning future activities, you need to know how to create, use, and display dates in a Java program. That requires more than simply looking up the appropriate class in the API reference: just one date can easily involve creating objects in three date-related classes. This tutorial shows what you need to know. (2,000 words)
Wörter im Text wiederfinden/suchen mit * und ? - Java @ tutorials.de: Forum, Tutorial, Anleitung, Schulung & Hilfe
Java Wörter im Text wiederfinden/suchen mit * und ? - powered by tutorials.de - die Hilfe - Community im WWW

cursor

Java: Cursor
Wait Cursor - Java Tutorials

BUCH: Java ist auch eine Insel -- 2.9 Einfache Benutzereingaben
Java ist auch eine Insel - Programmieren für die Java 2-Plattform in der Version 5, 5. Auflage, Galileo Computing, ISBN 3-89842-747-1
JFreeChart
Get JFreeChart at SourceForge.net. Fast, secure and free downloads from the largest Open Source applications and software directory. JFreeChart is a free (LGPL) chart library for the Java(tm) platform. It supports bar charts, pie charts, line charts, time series charts, scatter plots, histograms, simple Gantt charts, Pareto charts, bubble plots, dials, thermometers and more.
jfreechart,jfreechart Tutorial, Tutorials jfreechart,Example code jfreechart, Java jfreechart
JFreeChart tutorial (reprinted) | Screaming Penguin
SimpleDateFormat (Java 2 Platform SE v1.4.2)
Arrays und Listen sortieren
Java-Forum mit vielen verschiedenen Kategorien zu Java, anderen Sprachen und vielem mehr. Java bietet einem sehr viel. Doch bei einer umfangreichen Sprache wie Java entstehen oft Fragen, die auf java-forum.net beantwortet werden.

jfreechart

WaterFall Chart, Example of WaterFall Chart
Candle Stick Chart Example using JFreeChart
Koders Code Search: BarChartDemo4.java - Java - LGPL
Quellcodes aller möglichen Charts
JSF Chart Creator Component
charts darstellen ohne speichern- JENIA
jenia.org open source project.
www.jfree.org :: View topic - BarChart maximum bar width
jsf-comp - JSF Chart Creator Component

Colors in Java
casten
Casting of Java Classes and primitives Tutorial and Examples

JSF

JSF Tag Reference
JSF Tags

Richfaces

Exadel
Google Maps
richfaces ui 3.1.4.GA
richfaces ui 3.1.4.GA

JavaServer Faces -- Wikipedia
Einfache GUI mit Java Server Faces - Oberflächenentwicklung - Internet Professionell
Mit Java Server Faces (JSF) bietet Sun ein Werkzeug zur schnellen Entwicklung grafischer Bedienoberflächen. Der Artikel unterstützt Sie beim Einstieg in diese Technik.
Java Serverfaces - Google-Suche
Einführung in Javaserver Faces - Programmierung | ZDNet.de Developer
Javaserver Faces sind ein standardisiertes serverseitiges Framework, welches die Entwicklung der Präsentationsschicht von Webanwendungen vereinfacht. In diesem Artikel geht es darum, wie man mithilfe der Javaserver Faces-Technologie interaktive Webanzeigen erstellt.
johner.org: JSF
Christian Johner fokussiert sich auf die Schnittmenge von Softwareentwicklung/Softwareengineering, Qualitätssicherung und Gesundheitswesen. So bietet er den berufsbegleitenden Masterstudiengang "IT im Gesundheitswesen" an, der sich auch an Fachkräfte und Führungskräfte im Krankenhaus richtet. Neben der Fortbildung und Weiterbildung unterrichtet er an mehreren Hochschulen und Universitäten
popups
modalpanel [richfaces-svn-commits] JBoss Rich Faces SVN: r6116 - trunk/docs/faq/en/src/main/docbook/module.
(JSF) [Archiv] - Entwickler-Forum
[Archiv]
JSFToolbox^(TM) - JSF Tag Reference
Java Server Faces (Basics)
JavaServer Faces HTML Tags Reference
This is a handy reference guide from Exadel for the standard HTML tag library that is built into JavaServer Faces (JSF).
Handling Events in JavaServer Faces, Part 2 | O'Reilly Media
Hans Bergsten, author of JavaServer Faces, follows the material covered in part one of this excerpt from his book with details on implementing JSF event handling in a sample application.
backgroundcolorselectedrow in datatable
JavaServer Faces Tutorial (JSF) - Message Resources
EJB Tutorials, Hibernate 3 Book and Tutorials, Struts Tutorials, Spring Tutorials, JBoss and Tomcat.
Configuring Portlets for Internationalization and Localization
Through the example of a sample portlet, this article describes the procedures for internationalization, localization, and deployment of internationalized portlets on Portal Server.
Value and Method Binding Expressions in JavaServer Faces (JSF) Technology and Persisting Model Components With Java Data Objects Tech Tips
Value and Method Binding Expressions in JavaServer Faces (JSF) Technology and Persisting Model Components With Java Data Objects Tech Tips
6.85. < rich:tabPanel >
How to use h:selectOneRadio and Checkbox inside h:dataTable in JSF?
how-to-use-hselectoneradio-inside-hdatatabl
Group radio buttons inside a JSF dataTable component
When using standard JSF tags, implementing certain behaviors in Web applications can prove difficult--- for example when radio button group behavior inside a JSF dataTable component needs to span across columns or rows without using additional JavaScript. This article shows how to code a custom JSF tag to implement such behavior.

Google_geocode

GoogleMap

Bsp
richfaces gmap 3.1.4 - Google-Suche

!!!!!!3_Geocode zum Objekt - Google Maps
Google Maps API - Thank You
Controls - Google Maps API - Google Code
Problem with Listener - Google Maps API | Google Groups
Google Maps API Tutorial
Custom Markers
Map Delete Example
Markermanager, Markers not deleted... - Google Maps API | Google Groups
Reimers.dk - Remove Overlay
____________________________666Seitenanfang666_____________________________


35--> 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_____________________________


36--> mehrere Servlets in einer Web Applikation handeln


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

____________________________666Seitenanfang666_____________________________


37--> 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_____________________________


38--> 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_____________________________


39--> 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_____________________________


40--> 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_____________________________


41--> 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_____________________________


42--> 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_____________________________


43--> 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_____________________________


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




____________________________666Seitenanfang666_____________________________


45--> 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