あけましておめでとうございます。
今年もテキトーに頑張ります…(:3_ヽ)_
今年はJavaや.Netの記事を中心に書いていこうと考えてます。
CFに用意されているタグや関数についても所々で痒いところに手が届かないことがあるので
そこら辺はJavaとか.Netでカバーしないといけないのかなーと思い始めました。
ということで今回はCFでJavaオブジェクトを使用する方法について紹介します。
CFでJavaオブジェクトを使用する方法
Javaソースの準備
↓はよくあるJavaのソースです。
public class TestClass {
public String TestString;
public int TestInt;
public TestClass() {
TestString = "";
TestInt = 0;
}
public TestClass(String tString, int tInt) {
TestString = tString;
TestInt = tInt;
}
public void SetTestInt(int tInt) {
TestInt = tInt;
}
public void SetTestString(String tString) {
TestString = tString;
}
}
コンパイル
コンパイルしてJavaクラスファイルを作成します。
javac [ファイル名]
特定のフォルダへ移動
ColdFusion では、次の順序でオブジェクトが検索されます。
なので下記1〜3のいずれかのフォルダに作成したクラスファイルを置きます。
1.ColdFusion の Java の動的な Class ロードディレクトリ
2.”/WEB-INF/lib” の Java アーカイブ (.jar) ファイル
3.”/WEB-INF/classes” のクラス (.class) ファイル
ColdFusion側からJavaオブジェクトを呼び出す
最後はCF側からJavaクラスを呼び出してあげるだけです。
cfobjectタグを使用することで.NetやJavaオブジェクトを生成することができます。
<html>
<body>
<cfobject action="create" type="java" class="TestClass" name = "tClass">
<cfset tClass.TestString = "Test">
<cfset tClass.TestInt = 100>
<cfset testString = tClass.TestString>
<cfset testInt = tClass.TestInt>
<cfoutput>
TestString : #testString#
<br>
TestInt : #testInt#
<br>
<cfdump var="#tClass#">
</cfoutput>
</body>
</html>
実行結果は下記の通りです。

応用編
もちろん自作のクラスだけではなく、標準ライブラリで用意されているものも利用できます。
サンプルコード
JavaのDateクラスを利用するサンプルコードです。
<cfscript>
dateTest = createObject("java", "java.util.Date");
writeOutput(dateTest.toString());
writeDump(dateTest);
</cfscript>
実行結果
Dateクラスのオブジェクトが生成されており、利用できていることが確認できました。
注意
ColdFusionのバージョンによってはメソッドの挙動が異なる場合があります。
利用する場合には用法・用量を守って正しくお使いください。
今年も色々と新しいことに挑戦していきたい(¦3 _ )=

