問題
標準機能とカスタム機能の両方を含むケースレコードを表示および編集するVisualforceページが必要です。VisualforceページにmyControllerExtensionというApexクラスで定義されたコントローラ機能を正しく実装するためにどの属性を含める必要がありますか。
- extensions = “myControllerExtension”
- controller = “myControllerExtension”
- controller = “Case” extensions = “myControllerExtension”
- standardController = “Case” extensions = “myControllerExtension”
正解
- extensions = “myControllerExtension”
- controller = “myControllerExtension”
- controller = “Case” extensions = “myControllerExtension”
- standardController = “Case” extensions = “myControllerExtension”
解説
Visualforceページで標準機能にカスタムコントローラ拡張機能を追加するには、ページの<apex:page>
タグにstandardController
属性で標準コントローラを指定し、extensions
属性でカスタム拡張クラスを追加する必要があります。正しい組み合わせを使用することで、標準のオブジェクト操作にカスタムのロジックを組み込むことが可能になります。
参考:コントローラ拡張の作成
それぞれの選択肢の理由について説明します。
□ extensions = “myControllerExtension”
これは不正解です。extensions
を指定するだけでは不十分です。standardController
やcustomController
の指定がないため、Visualforceページはどのオブジェクトのレコードを扱うのか分かりません。
□ controller = “myControllerExtension”
これは不正解です。controller
属性はカスタムコントローラを指定するために使用されますが、この質問の要件ではCase
オブジェクトの標準コントローラに拡張機能を追加する必要があるため、この属性の使用方法が間違っています。
□ controller = “Case” extensions = “myControllerExtension”
これは不正解です。標準コントローラを指定する際にはstandardController
属性を使用する必要があり、controller
はカスタムコントローラを指定するためのものです。
参考:カスタムコントローラの作成
□ standardController = “Case” extensions = “myControllerExtension”
これは正解です。standardController
属性で標準コントローラ(この場合はCase
オブジェクト)を指定し、extensions
属性でその標準コントローラを拡張するカスタムApexクラス(myControllerExtension
)を指定しています。これにより、標準機能に加えてカスタム機能をVisualforceページに組み込むことができます。
コメント