カスタムコンポーネントの属性
標準の Visualforce マークアップ以外に、<apex:component> タグの本文でも、Visualforce ページで使用するときにカスタムコンポーネントに渡すことができる属性を指定できます。このような属性の値は、その後、コンポーネントやコンポーネントのコントローラー内 (該当する場合) で直接使用できます。ただし、コンポーネントのコントローラーのコンストラクターでは使用できません。
属性は <apex:attribute> タグで定義されます。たとえば、次のカスタムコンポーネントの定義では、value および textColor という名前の 2 つの必須属性を指定します。これらの属性の値をカスタムコンポーネントの定義内で参照するには、標準の {! } Visualforce の式言語構文を使用します。
次のマークアップで Visualforce ページにこのコンポーネントを使用します。
<apex:attribute> タグには、name、description、および type 属性の値が必要です。
- name 属性は Visualforce ページでカスタム属性を参照できる方法を定義します。この名前は、コンポーネント全体で一意にする必要があります。また、この名前には、大文字と小文字の区別はありません。たとえば、2 つの属性の名前が「Model」と「model」の場合、これらの属性は同じものとして処理されるため、予期しない動作が発生することがあります。
- description 属性は、カスタムコンポーネントが保存されたらコンポーネントの参照ライブラリに表示される属性のヘルプテキストを定義します。このカスタムコンポーネントは、使用可能な標準コンポーネントも含む参照ライブラリにリストされます。
-
type 属性は属性の Apex データ型を定義します。type 属性は次のデータ型のみを値として使用できます。
- string、integer、または boolean などのプリミティブデータ型。
- Account などの sObject、My_Custom_Object__c、または汎用型の SObject。
- String[]、Contact[] などの配列表記を使用して指定する一次元リスト。
- type="map" を使用して指定する対応付け。対応付けの特定のデータ型を指定する必要はありません。
- カスタム Apex クラス。
その他の <apex:attribute> 属性についての詳細は、「apex:attribute」を参照してください。