exteNd Workbench 4.1
コアヘルプ

 

    First Previous Next Last チュートリアル : WEBアプリケーションの開発  05/19/03 09:45:01 

Lesson 7    フォームおよび結果ページの定義

 
Top of page

学習する内容

このレッスンでは、JSPページでデータを表示するStrutsカスタムタグ、およびフォームを処理するJavaコードについて学習します。 設定ファイルで、Strutsコントローラがフォームについて認識しなければならない内容についても学習します。

学習内容は次のとおりです。

 
Top of section

実行する内容

  1. Struts設定ファイルで2つのアクションを定義する

  2. JSPページでフォーム要素を検査する

  3. SelectFormクラスを検査する

  4. SelectActionクラスを検査する

  5. 検索結果を示すJSPページを検査する

  6. アプリケーションを配備する

  7. Find Proverbsアクティビティをテストする

所要時間   約10分

注記:   このレッスンでは、配備のエクササイズ用にJ2EEアプリケーションサーバを実行する必要があります。

 
Top of page

1つのフォームに対する2つのアクション

struts-config.xmlでは、ことわざを検索するために、フォームを表示するselectアクション、および送信されたフォームを処理するresultsアクションという2つのアクション要素があります。

SelectActionクラスは、両方のアクションを処理します。 コントローラがperform()メソッドを呼び出すと、実行されているアクションを特定するActionMappingオブジェクトが渡されます。

新しいフォームでは、Actionクラスに加え、ActionFormクラスも必要となります。 名前およびクラスは、設定ファイルのform-beansセクションで定義されます。

Lesson 6, データを表示するアクションの定義では、いくつかのアクションの基本的な属性について学習しました。 これらを復習するには、 Strutsアクションについてのコントローラへの命令を参照してください。

ことわざを選択するアクションではフォームを使用しているため、次のエクササイズのアクション要素には、次のようないくつかの新しい属性が含まれています。

 
Top of section

EXERCISE 7-1: Struts設定ファイルで2つのアクションを定義する

このエクササイズでは、設定ファイルに2つのアクションを追加します。

注記:   Workbench-install-dir/docs/tutorial/TutorialFiles/proverbsディレクトリにあるCutAndPasteCode.txtファイルから、このエクササイズ用のXMLをコピーできます。

  1. Workbenchのナビゲーションペインで、struts-config.xmlを検索して開きます。

    設定ファイルは、プロジェクトのどの場所にあるでしょうか?

  2. 終了タグ</action-mappings>の前、およびtodayアクションの終了タグ</action>の後に、フォームを表示するアクションに対して次のXMLを入力します。

      <action    path="/select"
                 type="com.proverb.SelectAction"
                 name="selectForm"
                 scope="session"
                 validate="false">
          <forward name="success"    path="/select.jsp"/>
          <forward name="failure"    path="/select.jsp"/>
          <forward name="cancel"    path="/index.jsp"/>
      </action>
    
  3. さらにaction-mappings要素内で、selectアクションの</action>の後に、取得したデータを表示するアクションに対して次のXMLを入力します。

      <action    path="/results"
                 type="com.proverb.SelectAction"
                 name="selectForm"
                 scope="session"
                 input="select.jsp">
          <forward name="success"    path="/selectResults.jsp"/>
          <forward name="failure"    path="/selectFailed.jsp"/>
          <forward name="cancel"    path="/index.jsp"/>
      </action>
    
  4. ファイルの最初のform-beansセクションで、selectFormを定義し、そのJavaクラスを特定するform-bean要素を参照します。

      <form-bean    name="selectForm"
                    type="com.proverb.SelectForm"/>
    
  5. ファイルを保存して閉じます。

 
Top of page

フォームの設定

Find Proverbsアクティビティでは、フォームを表示して、ユーザがことわざを選択できるようにします。

Tut7 2findpvbsForm

 
Top of section

Strutsタグを使用したフォームの定義

Strutsでは、HTMLフォームタグに沿った機能を提供するカスタムタグが用意されています。 さまざまな入力フィールドおよびボタンを表示する他にも、タグには、これらのフィールドをStrutsのフォーム処理と関連付ける属性があります。

select.jspでは、標準のHTMLテーブルタグを使用してカスタムフォームタグが配列されています。

 
Top of section

EXERCISE 7-2: JSPページでフォーム要素を検査する

このエクササイズでは、フォームでどのようにプロパティが実装され、データが初期化されるか確認します。

  1. Workbenchのナビゲーションペインで、select.jspを検索して編集ペイン内で開きます。

  2. formカスタムタグを検索します。 action属性は、コントローラに送信されたURLを指定し、name属性は、送信されたデータを保存するFormクラスを特定します(次を参照)。

      <strutshtml:form action="results.do" name="selectForm" type="com.proverb.SelectForm">
    
  3. keywordsフィールドのタグを検索します。 テキストフィールドおよびラベルがあります。 ラベルテキストは、リソースファイルで指定されます。 テーブルタグを持たないコードは、次のとおりです。

      <strutsbean:message key="page.select.keywordslabel"/>
      <strutshtml:text property="keywords" size="40" maxlength="40"/>
    
  4. countryフィールドのタグを検索します。

      <strutsbean:message key="page.select.countrylabel"/>
      <strutshtml:select property="country" >
            <option value="">&nbsp;</option>
            <strutshtml:options property="countryList" />
      </strutshtml:select>
    

    optionタグは、選択リストで空白の行を提供します。 optionsタグは、countryListコレクションを参照し、ここにはSelectFormクラスで取得したデータが含まれます。

  5. submitボタンのタグを検索します。

      <strutshtml:submit>
         <strutsbean:message key="button.submitall"/>
      </strutshtml:submit>
    

    ボタンには、属性はありません。 メッセージタグは、カスタムラベルを指定します。

  6. ファイルを閉じます。

次のエクササイズでは、ActionFormクラスが、どのようにフォームのフィールドに一致するプロパティを定義するか確認します。

 
Top of section

ActionFormクラスを使用したフォームのサポート

Strutsを使用する場合、各フォームにはActionFormを拡張するクラスがあります。 クラスには、フォームでフィールドを一致させるプロパティがあります。 Actionクラスには、プロパティの値を取得することで、フォームをインスタンス化し、送信されたデータにアクセスするコードがあります。

ProverbsアプリケーションのSelectFormクラスには、国およびキーワードの入力フィールドに対するプロパティがあります。 また、ドロップダウンリストで表示される国に対して、countryListプロパティもあります。 フォームを初期化してリセットするreset()メソッドは、国のリストに対してデータベースを照会するプライベートgetList()メソッドを呼び出します。

Tut7 FormPropsMapping

 
Top of section

EXERCISE 7-3: SelectFormクラスを検査する

このエクササイズでは、フォームでどのようにプロパティが実装され、データが初期化されるか確認します。

  1. Workbenchのナビゲーションペインで、SelectForm.javaファイルを検索して開きます。

  2. 編集ペインで、SelectFormクラスが、Struts ActionFormクラスを拡張していることを確認します。

  3. JSPページでStrutsフォーム要素を一致させるプロパティを検索します。 プロパティには、次の項目があります。

  4. 入力フィールドを消去し、国のリストを取得するreset()メソッドを検索します。

  5. (オプション) getList()メソッドを検査します。

    getList()メソッドでは、todayアクションで使用する方法と同じデータアクセス方法を使用します。 希望する場合は、 EXERCISE 6-1: データベースからデータを取得するおよび EXERCISE 6-3: Actionクラスを使用してJSPページのデータを設定するでこの方法を復習します。

  6. ファイルを閉じます。

 
Top of page

アクションの処理

ご存知のように、各Strutsアクションは、Actionを拡張するクラスを使用します。 Find Proverbsアクティビティでは、いずれのアクションでも同じActionクラスを使用します。

コードでは、perform()に渡されたActionMappingオブジェクトのパスプロパティをチェックして、現在のアクションを特定できます。 Proverbsアプリケーションでは、SelectActionクラスはパスプロパティをチェックせず、代わりにフォームのフィールドに値があるかどうかチェックします。

 
Top of section

EXERCISE 7-4: SelectActionクラスを検査する

このエクササイズでは、SelectFormオブジェクトをインスタンス化し、データの集合を取得するコードを確認します。

  1. Workbenchのナビゲーションペインで、SelectAction.javaファイルを検索して開きます。

  2. 編集ペインで、SelectActionクラスが、Struts Actionクラスを拡張していることを確認します。

  3. 次の処理を行うコードを確認します。

  4. ファイルを閉じます。

 
Top of page

取得したデータの表示

resultsアクションは、selectアクションと同じActionクラスを使用しますが、設定では、forwardキーワードに対して異なるJSPページを指定しています。 次の2つのページがあります。

 
Top of section

EXERCISE 7-5: 検索結果を示すJSPページを検査する

このエクササイズでは、取得したことわざを表示するコードや、検索結果がなかったことを報告するページを確認します。

  1. selectResults.jspを開きます。

  2. Struts iterateタグを検索して、Proverbオブジェクトのプロパティを表示するタグを確認します。

    データタグがどのように動作するか覚えていますか? 覚えていない場合は、 データを表示するためのStrutsタグを復習します。

  3. selectFailed.jspを開きます。

  4. ことわざが検索されなかったことを報告し、テキストを特定するメッセージキーpage.selectfailed.infoを検索します。

  5. (オプション) ApplicationResources.propertiesを開き、メッセージキーの実際のテキストを参照します。

  6. ファイルを閉じます。

 
Top of page

フォームの配備およびテスト

Find Proverbsアクティビティをテストする準備が整いました。

 
Top of section

EXERCISE 7-6: アプリケーションを配備する

  1. Workbenchで、[Project]>[Build and Archive]の順に選択します。

    [Output]ペインに作成エラーが表示されないようにします。

  2. メニューから[Project]>[Deploy Archive]の順に選択します。

    [Output]ペインに配備エラーが表示されないようにします。

 
Top of section

EXERCISE 7-7: Find Proverbsアクティビティをテストする

  1. ブラウザが実行されている場合、新しいブラウザウィンドウを開きます。 ブラウザが実行されていない場合は、起動します。

  2. アプリケーションのURLを入力します。 一般的なURLは、次のとおりです。

      http://localhost/ProverbsCloud/ProverbStart/index.jsp
    
  3. アプリケーションのナビゲーションメニューで[Find Proverbs]をクリックします。

    Find Proverbsフォームが表示されます。

  4. フォームに入力します。 ドロップダウンリストから国を選択したり、キーワードを指定したり、またはその両方を実行できます。

    ヒント:   国を[China]、キーワードをmanと指定してみます。 [Country]の残りの空 白でキーワードをlightと指定してみます。

    Tut7 findFormTest

    アプリケーションで、条件に一致することわざが検索された場合、Your ProverbsというタイトルのselectResults.jspが表示されます。

    条件に一致することわざがない場合、selectFailed.jspが表示されます。

 
Top of page

実行した内容のまとめ

アプリケーションの開発   このレッスンでは、Proverbsチュートリアルアプリケーションの次の部分を作成するか、次の部分について学習しました。

Workbenchツールの使用   Workbenchで、次のツールを使用しました。

次のレッスン   次のレッスンでは、データベースを更新するフォームの処理について学習します。

    First Previous Next Last チュートリアル : WEBアプリケーションの開発  05/19/03 09:45:01 

Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC, a wholly owned subsidiary of Novell, Inc. All rights reserved.