cfjava

説明

ColdFusion 内で Java コードを記述できるようにします。

シンタックス

<cfjava instance=&quot;instance&quot; </cfjava>

履歴

Adobe ColdFusion(2021 リリース):このリリースで新たに導入されました。

属性

属性

必須/オプション

説明

instance

必須

Java コードのクラスインスタンスの値を格納する変数。

使用方法

CFML コードのブロックを含んだ Java クラスを作成し、そのコードを実行することができます。CFML ブロック内で Java オブジェクトのインスタンスを作成し、中核となる Java コンストラクトを書き込むことができます。

例 - タグ

<cfjava handle=&quot;classInstance&quot; > import java.io.*; public class Harmless{ private String ss = &quot;John&quot;; 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(&quot;new content from java added &quot; + 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 = &quot;&quot;; objReader = new BufferedReader(new FileReader(path)); while ((strCurrentLine = objReader.readLine()) != null) { cont= cont + &quot;--&quot; + strCurrentLine; } objReader.close(); return cont; } } </cfjava> <cfset classInstance.init(&quot;content from cf&quot;)> <!--- init() を使用してコンストラクタを呼び出す ---> <cfset path = ExpandPath(&#39;./&#39;) & &#39;temp.txt&#39;> <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