- リンクを取得
- ×
- メール
- 他のアプリ
- リンクを取得
- ×
- メール
- 他のアプリ
Visualforceでエラーメッセージや通知メッセージを表示するために提供される4つのコンポーネント、
<apex:message>
、<apex:messages>
、<apex:pageMessage>
、および<apex:pageMessages>
には、それぞれ用途や動作に違いがあります。以下では、それぞれのコンポーネントについての詳細な違いと使用例を解説します。1. <apex:message>
特定のコンポーネントに関連するメッセージを表示するためのコンポーネント
- 用途: ある特定のフォームフィールド(例: 入力項目)に関連するメッセージを表示します。
- 特徴:
for
属性で対象のコンポーネントを指定します。- 単一のメッセージを表示。
- メッセージのスタイルをカスタマイズ可能。
使用例:
<apex:page controller="ExampleController"> <apex:form> <apex:inputText value="{!name}" id="nameField"/> <apex:message for="nameField" /> <apex:commandButton action="{!save}" value="Save"/> </apex:form> </apex:page>
2. <apex:messages>
ページ全体に関連するすべてのメッセージを一括表示
- 用途: ページ全体で発生したすべてのメッセージ(複数可)をまとめて表示します。
- 特徴:
- 個別のフォームフィールドに関連しないメッセージも含む。
- 自動的にすべてのメッセージをリスト表示。
使用例:
<apex:page controller="ExampleController"> <apex:form> <apex:inputText value="{!name}" id="nameField"/> <apex:commandButton action="{!save}" value="Save"/> <apex:messages /> </apex:form> </apex:page>
3. <apex:pageMessage>
単一のメッセージをページの特定位置に表示
- 用途: ページ全体の通知や、単一の重大なメッセージ(例: 成功通知や重大なエラー)を表示する。
- 特徴:
severity
属性でメッセージのタイプを指定可能(info
、warning
、error
など)。- 通常、ページの上部に目立つ形で配置される。
使用例:
<apex:page> <apex:pageMessage summary="Operation Successful" severity="info" detail="Your record has been saved successfully." /> </apex:page>
4. <apex:pageMessages>
ページ全体のすべてのメッセージを標準的なスタイルで表示
- 用途: 複数のエラーメッセージや通知をページ全体にわたって表示。
- 特徴:
- ページ全体で発生したすべてのメッセージをまとめて表示。
- Salesforceの標準UIに合わせたデザインで表示される。
使用例:
<apex:page controller="ExampleController"> <apex:form> <apex:inputText value="{!name}" id="nameField"/> <apex:commandButton action="{!save}" value="Save"/> <apex:pageMessages /> </apex:form> </apex:page>
違いのまとめ
コンポーネント | 対象 | 表示内容 | スタイルの自由度 | 主な用途 |
---|---|---|---|---|
<apex:message> |
特定のコンポーネント | 単一のメッセージ | 高い | フィールド単位のエラー表示 |
<apex:messages> |
ページ全体 | すべてのメッセージ | 低い(リスト表示が主) | 複数メッセージの一括表示 |
<apex:pageMessage> |
ページ全体(特定の通知) | 単一の通知/エラー | 高い | 成功/警告/重大エラーの通知 |
<apex:pageMessages> |
ページ全体(標準スタイル) | すべてのメッセージ | 低い(標準UIに従う) | Salesforce標準UIの統一感を重視 |
選択のポイント
- コンポーネント単位のエラーが必要な場合 →
<apex:message>
- 複数メッセージを一括表示したい場合 →
<apex:messages>
または<apex:pageMessages>
- ページ全体の通知を目立たせたい場合 →
<apex:pageMessage>
コメント
コメントを投稿