今まで知らなくて会社の人に教えてもらったsObjectとComponentの話。
通常、apex:outputFieldなどでsObjectの値を表示するときはこんな感じです。
<apex:outputField value="{!Account.Name}" />
inputFieldとmap型変数を組み合わせるときと同じように次のような書き方もできます。(――同じようにというより同じだったんですね...)
<apex:outputField value="{!SObject[FieldApiName]}" />
普段あまり必要にならなかったのですが、apex:componentでコンポーネント化して対象項目を動的に変更したい場合に便利でした。
サンプルコード