データタイプにあまり制約がない ColdFusion とは異なり、Java は厳しくタイプ分けされた言語です。したがって、Java メソッドの呼び出しには、注意するべき点がいくつかあります。次の項では、Java クラスを作成および使用し、ColdFusion の各ページで Java を効率よく使用する方法を示します。
Employee クラスには、4 つのデータメンバーがあります。FirstName および LastName は public であり、Salary および JobGrade は private です。また、Employee クラスは、オーバーロードされた 3 つのコンストラクタと、オーバーロードされた 1 つの SetJobGrade メソッドを持ちます。
ファイル Employee.java に次の Java ソースコードを保存してコンパイルし、その結果生成された Employee.class ファイルをクラスパスで指定されたディレクトリに配置します。
public class Employee {
public String FirstName;
public String LastName;
private float Salary;
private int JobGrade;
public Employee() {
FirstName ="";
LastName ="";
Salary = 0.0f;
JobGrade = 0;
}
public Employee(String First, String Last) {
FirstName = First;
LastName = Last;
Salary = 0.0f;
JobGrade = 0;
}
public Employee(String First, String Last, float salary, int grade) {
FirstName = First;
LastName = Last;
Salary = salary;
JobGrade = grade;
}
public void SetSalary(float Dollars) {
Salary = Dollars;
}
public float GetSalary() {
return Salary;
}
public void SetJobGrade(int grade) {
JobGrade = grade;
}
public void SetJobGrade(String Grade) {
if (Grade.equals("CEO")) {
JobGrade = 3;
}
else if (Grade.equals("MANAGER")) {
JobGrade = 2;
}
else if (Grade.equals("DEVELOPER")) {
JobGrade = 1;
}
}
public int GetJobGrade() {
return JobGrade;
}
}
次のテキストを JEmployee.cfm として保存します。
<html> <body> <cfobject action="create" type="java" class="Employee" name="emp"> <!--- <cfset emp.init()> ---> <cfset emp.firstname="john"> <cfset emp.lastname="doe"> <cfset firstname=emp.firstname> <cfset lastname=emp.lastname> </body> <cfoutput> 従業員名は #firstname# #lastname# です。 </cfoutput> </html>
このページをブラウザに表示すると、次の出力が表示されます。
従業員名は john doe です。
次の表で、前述の CFML コードについて説明します。
| コード | 説明 |
|---|---|
<cfobject action=create |
Employee Java クラスをロードし、これに emp というオブジェクト名を与えます。 |
<!--- <cfset emp.init()> ---> |
コンストラクタを呼び出しません。ColdFusion は、クラスを最初に使用する際 (この例では、次の行を処理する際) にデフォルトのコンストラクタを呼び出します。 |
<cfset emp.firstname="john"> <cfset emp.lastname="doe"> |
emp オブジェクトのパブリックフィールドに値を設定します。 |
<cfset firstname=emp.firstname> <cfset lastname=emp.lastname> |
emp オブジェクトからこのフィールドの値を戻します。 |
<cfoutput> 従業員名は #firstname# |
取り出した値を表示します。 |
Java クラスオブジェクトを使用して ColdFusion ページを記述する場合は、次に挙げる点に留意してください。
次の ColdFusion ページは、Employee オブジェクトの代替コンストラクタの 1 つを明示的に呼び出します。
<html>
<body>
<cfobject action="create" type="java" class="Employee" name="emp">
<cfset emp.init("John", "Doe", 100000.00, 10 )>
<cfset firstname=emp.firstname>
<cfset lastname=emp.lastname>
<cfset salary=emp.GetSalary()>
<cfset grade=emp.GetJobGrade()>
<cfoutput>
従業員名は #firstname# #lastname# です。<br>
従業員給与 : #DollarFormat(Salary)#<br>
従業員階級 : #grade#
</cfoutput>
</body>
</html>
この例では、コンストラクタは 4 つの引数を取ります。最初の 2 つは文字列、3 つめは浮動小数点数、そして 4 つめは整数です。
ColdFusion MX 7 | ColdFusion MX 6.1 | ColdFusion MX* | ColdFusion 5* | フォーラム* | デベロッパーセンター | サポート情報 | バグ報告
バージョン7