ADF Faces入力コンポーネントでのラベルおよびメッセージ表示のサポートについて

複数のADF Faces入力コンポーネント(af:inputTextaf:selectInputDateなど)には、ラベルとメッセージを表示するためのビルトイン・サポートがあります。この機能は、コンポーネントのsimple属性によって制御されます。false(デフォルト)に設定すると、入力コンポーネントによってメッセージ(ヒントやエラー・メッセージを含む)の表示が自動的に処理されます。trueに設定すると、ラベルとメッセージのサポートがオフになり、シンプル入力コンポーネントに対して独自のラベルとメッセージのサポートを提供できます。

ラベルとメッセージの表示機能がビルトインされているため、フォームのレイアウトにADF Facesコンポーネントを使用した方が、JSFの標準コンポーネントを使用するより簡単にラベルとメッセージを用意できます。

たとえば、JSFの標準コンポーネントで作成したシンプル・フォームは、次のようになります。

<h:panelGrid columns="3"> 
  <h:outputLabel value="Enter a number: " for="input1"/> 
  <h:panelGroup>
    <h:inputText id="input1" required="true">
      <f:validateLongRange maximum="10" minimum="1"/>
    </h:inputText>
    <f:verbatim><br></f:verbatim>
    <h:message for="input1" />
  </h:panelGroup>
  <h:commandButton value="Submit"/>
</h:panelGrid>    

同じフォームをADF Facesで作成すると、必要なコードは次のコードのみになります。

<h:panelGrid columns="2">
  <af:inputText label="Enter a number: " id="input2" required="true">
    <f:validateLongRange maximum="10" minimum="1"/>
  </af:inputText>
  <af:commandButton text="Submit"/> 
</h:panelGrid>    

JSFの標準入力コンポーネントとは異なり、ADF Faces入力コンポーネントに関連付けられているエラー・メッセージを表示する際はaf:messageタグを使用する必要はありません。変換または検証エラーがある場合は、入力コンポーネントの下またはアラートにエラー・メッセージが自動的に表示されます。「ADF Facesの変換および検証エラーについて」の例を参照してください。

ヒント: 一連のADF Faces入力コンポーネントがある場合は、その入力コンポーネントの周囲でaf:panelFormレイアウト・パネル・コンポーネントを使用し、ラベルとフィールドを適切にそろえてください。

...
<af:panelForm>
  <af:inputText label="First name: " />
  <af:inputText label="Middle name: " />
  <af:inputText label="Last name: " />
</af:panelForm>
...    

ラベル属性およびメッセージ属性の設定

simplefalse(デフォルト)の場合は、次の属性を使用して入力コンポーネントにラベルとメッセージを指定できます。

ラベルおよびメッセージ表示サポートのオフへの切替え

入力コンポーネントに対するラベルとメッセージ表示のビルトイン・サポートを使用しない場合は、コンポーネントのsimple属性をtrueに設定します。次に、af:panelLabelAndMessageにシンプル・コンポーネントをラップするか、af:outputLabelおよびaf:messageをシンプル・コンポーネントに関連付けて、そのコンポーネントに対して独自のラベルとメッセージ・サポートを用意します。

次に、af:panelLabelAndMessageの使用例を示します。

<af:panelLabelAndMessage label="Label 1"
                         tip="Some tip"
                         for="input1"
                         showRequired="true">
  <af:inputText simple="true"
                id="input1" 
                required="true"
                value="424"
                label="Must set the label in this version">
    <af:validateRegExp pattern="[1-9][2][0-9]"/>
    <f:validateLongRange maximum="920" minimum="220"/>
  </af:inputText>
</af:panelLabelAndMessage>    

ヒント:

af:outputLabelおよびaf:messageを使用して、シンプル入力コンポーネントに対して独自のラベルとメッセージのサポートを提供する場合は、次の例を参照してください。

<af:panelGroup layout="vertical">
  <af:outputLabel for="input1" value="Lucky number:" showRequired="true"/>
  <af:inputText required="true" id="input1" value="424" simple="true">
    <af:validateRegExp pattern="[1-9][2][0-9]"/>
    <f:validateLongRange maximum="920" minimum="220"/>
  </af:inputText>
  <af:message for="input1" tip="Enter a 3-digit number."/>
</af:panelGroup>    

af:outputLabelおよびaf:messagefor属性をシンプル入力コンポーネントIDに設定する必要があります。

ラベルとメッセージ表示に対する自動サポートがオフに設定されている場合、シンプル入力コンポーネントの次の属性(指定されている場合)は無視されます。

af:panelLabelAndMessageまたはaf:outputLabelの使用に関する詳細は、「ADF Facesシンプル入力コンポーネントのラベルおよびメッセージの表示」または「OutputLabelを使用した入力コンポーネントのラベルの表示」を参照してください。


ADF Facesのメッセージ・タグについて
ADF Facesコンポーネントでのアクセシビリティのサポートについて
自動発行およびADF Faces入力コンポーネントについて
ADF Faces入力コンポーネントのrequired属性とimmediate属性について
ADF Faces入力コンポーネントの概要