ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Identity Manager開発者ガイド
11g リリース1(11.1.1)
B66705-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

29 カスタムADFタブのセルフ・サービスへの追加

この章では、ADFページ・フラグメントをOracle Identity Managerセルフ・サービスに追加する機能について説明します。

セルフ・サービスでの複雑なカスタマイズを有効にするには、セルフ・サービスの「タスク」セクション、「リクエスト」セクションおよび「プロファイル」セクションの右側に最上位タブを追加します。これを行うには、次の手順を実行します。

  1. UIカスタマイズの新規.jsffフラグメントを作成します。

    ADFでは、個別のファイルを.jspxファイルに埋め込むdeclarativeComponentタグが提供されます。このタグを使用して、カスタム・ページ・フラグメントをSelf.jspxに埋め込みます。カスタム・ファイルは、/web/pageFragments/ディレクトリのiam-consoles-faces.warにある必要があります。たとえば、/web/pageFragments/custom/Custom.jsffとなります。

    次に、ページ・ヘッダーとともに簡単な開始例を示します。

    <?xml version='1.0' encoding='UTF-8'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
              xmlns:af="http://xmlns.oracle.com/adf/faces/rich"
              xmlns:f="http://java.sun.com/jsf/core">
      <jsp:directive.page contentType="text/html;charset=utf-8"/>
      <af:componentDef>
        <af:panelStretchLayout id="psl1a" topHeight="auto" startWidth="0px"
                               endWidth="0px" bottomHeight="0px">
          <f:facet name="bottom"/>
          <f:facet name="start"/>
          <f:facet name="end"/>
          <f:facet name="top">
            <af:panelHeader id="ph1a" size="-1" text="">
              <f:facet name="context">
               <af:outputText value="Customize Fragment" id="ot2a" inlineStyle="font-size:15px"/>
              </f:facet>
              <f:facet name="menuBar"/>
              <f:facet name="toolbar"/>
              <f:facet name="legend">
               <af:separator id="s2a"/>
              </f:facet>
              <f:facet name="info"/>
            </af:panelHeader>
          </f:facet>
        </af:panelStretchLayout>
      </af:componentDef>
    </jsp:root>
    
  2. UIカスタマイズのマネージドBeanを作成し、別の.jarファイルでBeanをコンパイルして、このBeanをiam-consoles-faces.warに追加します。


    注意:

    通常、JavaServer Facesアプリケーションには、ページで使用されるUIコンポーネントに関連付けられているJavaBeansコンポーネントであるマネージドBeanまたはバッキングBeanが1つ以上含まれています。バッキングBeanはUIコンポーネントのプロパティを定義します(各プロパティはコンポーネントの値またはコンポーネント・インスタンスにバインドされます)。また、バッキングBeanでは、検証、イベント処理、ナビゲーション処理などのコンポーネントに関連した機能を実行するメソッドも定義できます。


    カスタム・ビジネス・ロジックを指定するには、各カスタム・ページに新規マネージドBeanを作成する必要があります。新規マネージドBeanは、iam-consoles-faces.warに追加できる新規.jarファイルにコンパイルする必要があります。

  3. カスタマイズ・ページをfaces-config-self.xmlに追加します。

    次のようにカスタム・ページを定義します。

    <managed-bean>
         <managed-bean-name>customPage</managed-bean-name>
         <managed-bean-class>
         oracle.iam.consoles.faces.backing.Self$OperationAction
         </managed-bean-class>
         <managed-bean-scope>application</managed-bean-scope>
         <managed-property>
             <property-name>id</property-name>
             <property-class>java.lang.String</property-class>
             <value>customization_page</value>
         </managed-property>
         <managed-property>
             <property-name>pageUrl</property-name>
             <property-class>java.lang.String</property-class>
             <value>../pageFragments/custom/Custom.jsff</value>
         </managed-property>
    </managed-bean>
    

    次のようにカスタム・ページをprimaryOperationsMapに追加します。

    <managed-bean>
            <managed-bean-name>primaryOperationsMap</managed-bean-name>
            <managed-bean-class>java.util.LinkedHashMap</managed-bean-class>
            <managed-bean-scope>application</managed-bean-scope>
            <map-entries>
                <key-class>java.lang.String</key-class>
    <value-class>oracle.iam.consoles.faces.backing.Self$OperationAction</value-class>
                <map-entry>
                    <key>#{myTaskPrimaryOperation.entityTypeId}</key>
                    <value>#{myTaskPrimaryOperation}</value>
                </map-entry>
                <map-entry>
                    <key>#{myRequestPrimaryOperation.entityTypeId}</key>
                    <value>#{myRequestPrimaryOperation}</value>
                </map-entry>
                <map-entry>
                    <key>#{myProfilePrimaryOperation.entityTypeId}</key>
                    <value>#{myProfilePrimaryOperation}</value>
                </map-entry>
                <!-- New custom fragments -->
                <map-entry>
                    <key>#{customPage.id}</key>
                    <value>#{customPage}</value>
                </map-entry>
            </map-entries>
    </managed-bean>
    
  4. 新規マネージドBeanをfaces-config-self.xmlに追加します。

    oim.ear/iam-consoles-faces.war/WEB-INF/faces-config-self.xmlファイルで新規マネージドBeanクラスを次のように構成する必要があります。

    <managed-bean>
            <managed-bean-name>customBean</managed-bean-name>
    <managed-bean-class>oracle.iam.consoles.faces.custom.CustomBean</managed-bean-class>
            <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>
    
  5. 次のようにタブ名のカスタム・プロパティをSelf.propertiesに追加します。


    注意:

    リソース名の最初の部分は、手順3のmanaged-bean idパラメータと一致する必要があります。


    customization_page.text=Custom
    customization_page.shortDesc=Custom Description