Archiv der Kategorie: Cold Fusion

Eigene Java Klassen in Coldfusion verwenden

Coldfusion ist ein Javaframework. Deshalb kann man aus Coldfusion heraus auch auf Javaklassen zugreifen. Z.B.

<cfset a = [1, 2, 3, 4, 5, 12,23,33,45]>
<cfdump var="#a#">
<cfoutput>reverse it</cfoutput>
<cfset createObject("java", "java.util.Collections").reverse(a)>
<cfdump var="#a#">

Um eigene Javaklassen zu bauen und unter Coldfusion anzusprechen muß folgendes gemacht werden.

Schritt für Schritt:
1) Javaklasse anlegen (natürlich im package)

package de.ingoreschke.simplemath;
 
public class SimpleMath {
	public int addInt(int a, int b){
		return a + b;
	}
}

2) Jar File erstellen
Unter eclipse geht das relative einfach.
auf das

  • package rechte Maustaste
  • Export
  • type Jar file wählen
  • Ziel angeben

Eclipse macht den Rest.

3) Jar File in den Classpath einbinden. Und das ist eine Wissenschaft für sich ;)
Siehe dazu Guide to set classpath
In kurzform

  • das Jar File in das WEB-INF/lib Verzeichnis kopieren
  • Server durchstarten
  • 4) Klasse mit vollqualifizierten Namen aufrufen

    <cfset myObj = createObject("java", "de.ingoreschke.simplemath.SimpleMath")>
    <cfset val1 = 3>
    <cfset val2 = 34>
    <cfset result = myObj.addInt(val1,val2)>
     
    <cfoutput>
    Das Ergebnis von #val1# + #val2# = #result#
    </cfoutput>

    Quellen und nützliche Ausführungen:
    ColdFusion’s Java connection
    Guide to set classpath

Reverse IP Address Lookup with ColdFusion + Java

Reverse IP Address Lookup with ColdFusion + Java

I needed to do a reverse lookup on some IP addresses in a database today. I found that you can do this pretty easily with java, and just as easily with ColdFusion. Here it is:

<cfset inet_address = CreateObject(“java”, “java.net.InetAddress”)>

<cfset host_name = inet_address.getByName(“66.249.66.99″).getHostName()>

<cfoutput>#host_name#</cfoutput>

In java this would simply be:

System.out.println( java.net.InetAddress.getByName(“66.249.66.99″).getHostName() );

 

via Reverse IP Address Lookup with ColdFusion + Java.

ColdFusion Loops cfloop

COM Collection/Structure Loops

You can loop over a Structure or COM collection.

<cfset myBooks = StructNew()>
<cfset myVariable = StructInsert(myBooks,"ColdFusion","ColdFusion MX Bible")>
<cfset myVariable = StructInsert(myBooks,"HTML","HTML Visual QuickStart")>
<cfset myVariable = StructInsert(myBooks,"XML","Inside XML")>
<cfloop collection="#myBooks#" item="subject">
  <cfoutput>
 <b>#subject#:</b> #StructFind(myBooks,subject)#<br />
 </cfoutput>
</cfloop>

Display in browser:
ColdFusion: ColdFusion MX Bible
HTML: HTML Visual QuickStart
XML: Inside XML
via ColdFusion Loops cfloop.

Returning NULL Values From A ColdFusion User Defined Function

<cffunction
	name="GetNull"
	access="public"
	returntype="any"
	output="false"
	hint="Returns a NULL value.">
 
	<!--- Return a Java null. --->
	<cfreturn JavaCast( "null", 0 ) />
</cffunction>


Siehe Ben Nadel
Returning NULL Values From A ColdFusion User Defined Function
.

Eclipse Shortcuts

Alle die viel mit dem Computer arbeiten wissen, das Shortcuts einem das Leben enorm erleichtern.
Einziges Problem man muß sie kennen.
Da ich, als Programmierer, täglich mit Epclipse arbeite, habe ich mich auf die Suche nach Shortcut-Listen für Eclipse gemacht. Und was soll ich sagen es gibt tausende.
Hier einige ausgewählte.

Auch ganz nett um seine wichtigsten Shortcuts schnell zu lernen, der Shortcut-Trainer. Ein nerviges Plugin welches einem immer den Shortcut anzeigt wenn man sich über das Menü durchklickt.
http://www.mousefeed.com/
Ein netter Artikel dazu http://www.wolfgangschoch.com/blog/788-eclipse-shortcuts-trainer.html

Meine Lieblings-shortcuts

F4
Zeigt die Hierachie an. Sehr nützlich. Von welchem Classe wird abgeleitet? Welche weiteren Ableitungen gibt es?
Ctrl + Leertaste
Verfügbare Methoden anzeigen, Autovervollständigung
Ctrl + 1
Quickfix öffnen. Wenn ein Methodeaufruf einen error meldet. Cursor drauf und Ctrl+1. Quickfix Vorschläge werden angezeigt
Ctrl + Shift + O
Imports Organisieren (überflüssige löschen, notwendige hinzufügen)
Ctrl + Shift + G
zeige alle Referencen im Workspace.
Ctrl + s
Speichern
Alt + Shift + J
Javadoc comment skeleton erstellen.
Shift + F2
Javadoc aufrufen. (Java) mit Cusor auf einem Klassennamen. Es wird die API aufgerufen und zur Beschreibung der Klasse oder Methode gesprungen.
ALT + Pfeil Hoch / Pfeil Runter
Verschiebt die Zeile unter dem Cursor.
Ctrl + Shift + L
Zeigt alle verfügbaren Shortcuts an

Hinweis

Die hier aufgelisteten Shortcuts beziehen sich auf eine “normale” Eclips Installation mit Java Plugins.
Es gibt ja auch IDE´s, z.B. ColdFusion Builder, die auf Basis von Eclipse erstellt wurden. Diese IDE´s haben mitunter andere Shortcuts bzw. nicht die selben oder auch einfach nur deaktiviert.

Coldfusion Builder
Die Shortcuts für den Coldfusion Builder lassen sich wie folgt anzeigen.
Help -> Key Assist…

Meine Lieblings-shortcuts für den CF-Builder

Ctrl + Shift + D
cfdump var =”##”
Ctrl + Shift + O
umschließendes cfoutput … /cfoutput
Ctrl + Shift + H
umschließendes # … #
Ctrl + Shift + M
umschließendes Kommentar. Aus,- und Einkommentieren.

Diese Liste ist auch im Coldfusion Blog veröffentlicht.
http://www.coldfusion-blog.de/2010/09/16/685/

cfquery dot Notation

Bei einem Queryresult bekommt man im Allgemeinen mehrere Datensätze.
Um auf eine bestimmte Zeile zuzugreifen kann die dot notation verwendet werden.
Zb. um den ersten Datensatz anzuzeigen:

<cfoutput>#qArtikel["artikelBezeichnung"][1]#</cfouput>
 
<!--- syntax 
#query[col][row]#    Achtung cf fängt bei 1 an zu zählen
--->