属性
最終更新日 :
2022年1月19日
説明
ColdFusion 内で Java コードを記述できるようにします。
シンタックス
<cfjava instance="instance" </cfjava>
履歴
Adobe ColdFusion(2021 リリース):このリリースで新たに導入されました。
属性
|
必須/オプション |
説明 |
---|---|---|
instance |
必須 |
Java コードのクラスインスタンスの値を格納する変数。 |
使用方法
CFML コードのブロックを含んだ Java クラスを作成し、そのコードを実行することができます。CFML ブロック内で Java オブジェクトのインスタンスを作成し、中核となる Java コンストラクトを書き込むことができます。
例 - タグ
<cfjava handle="classInstance" > import java.io.*; public class Harmless{ private String ss = "John"; public Harmless(String s){ this.ss = s; } public void write(String path) throws Exception{ File file = new File(path); file.createNewFile(); FileWriter fr = new FileWriter(file, true); BufferedWriter br = new BufferedWriter(fr); PrintWriter pr = new PrintWriter(br); pr.println("new content from java added " + this.ss); pr.close(); br.close(); fr.close(); } public String read (String path) throws Exception{ File file = new File(path); BufferedReader objReader = null; String strCurrentLine; String cont = ""; objReader = new BufferedReader(new FileReader(path)); while ((strCurrentLine = objReader.readLine()) ! = null) { cont= cont + "--" + strCurrentLine; } objReader.close(); return cont; } } </cfjava> <cfset classInstance.init("content from cf")> <! --- init() を使用してコンストラクタを呼び出す ---> <cfset path = ExpandPath('./') & 'temp.txt'> <cfset classInstance.write(path)> <! --- クラス Harmless のメソッド write() を呼び出す ---> <cfoutput>#classInstance.read(path)#</cfoutput> <! --- クラス Harmless のメソッド read() を呼び出す --->
例 - スクリプト
<cfscript> classInstance = java{ public class class1{ public int execute () { int[] arr; arr = new int[5]; arr[0] = 10; arr[1] = 20; arr[2] = 30; arr[3] = 40; arr[4] = 50; return arr.length; } } } writeoutput(classInstance.execute()) </cfscript>
出力
5