![]() ![]() ![]() ![]() ![]() |
チュートリアル : WEBアプリケーションの開発 05/19/03 09:45:01 |
このレッスンでは、JSPページでデータを表示するStrutsカスタムタグ、およびフォームを処理するJavaコードについて学習します。 設定ファイルで、Strutsコントローラがフォームについて認識しなければならない内容についても学習します。
注記: このレッスンでは、配備のエクササイズ用にJ2EEアプリケーションサーバを実行する必要があります。
struts-config.xmlでは、ことわざを検索するために、フォームを表示するselectアクション、および送信されたフォームを処理するresultsアクションという2つのアクション要素があります。
SelectActionクラスは、両方のアクションを処理します。 コントローラがperform()メソッドを呼び出すと、実行されているアクションを特定するActionMappingオブジェクトが渡されます。
新しいフォームでは、Actionクラスに加え、ActionFormクラスも必要となります。 名前およびクラスは、設定ファイルのform-beansセクションで定義されます。
Lesson 6, データを表示するアクションの定義では、いくつかのアクションの基本的な属性について学習しました。 これらを復習するには、 Strutsアクションについてのコントローラへの命令を参照してください。
ことわざを選択するアクションではフォームを使用しているため、次のエクササイズのアクション要素には、次のようないくつかの新しい属性が含まれています。
このエクササイズでは、設定ファイルに2つのアクションを追加します。
注記: Workbench-install-dir/docs/tutorial/TutorialFiles/proverbsディレクトリにあるCutAndPasteCode.txtファイルから、このエクササイズ用のXMLをコピーできます。
Workbenchのナビゲーションペインで、struts-config.xmlを検索して開きます。
設定ファイルは、プロジェクトのどの場所にあるでしょうか?
終了タグ</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>
さらに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>
ファイルの最初のform-beansセクションで、selectFormを定義し、そのJavaクラスを特定するform-bean要素を参照します。
<form-bean name="selectForm" type="com.proverb.SelectForm"/>
Find Proverbsアクティビティでは、フォームを表示して、ユーザがことわざを選択できるようにします。
Strutsでは、HTMLフォームタグに沿った機能を提供するカスタムタグが用意されています。 さまざまな入力フィールドおよびボタンを表示する他にも、タグには、これらのフィールドをStrutsのフォーム処理と関連付ける属性があります。
select.jspでは、標準のHTMLテーブルタグを使用してカスタムフォームタグが配列されています。
このエクササイズでは、フォームでどのようにプロパティが実装され、データが初期化されるか確認します。
formカスタムタグを検索します。 action属性は、コントローラに送信されたURLを指定し、name属性は、送信されたデータを保存するFormクラスを特定します(次を参照)。
<strutshtml:form action="results.do" name="selectForm" type="com.proverb.SelectForm">
keywordsフィールドのタグを検索します。 テキストフィールドおよびラベルがあります。 ラベルテキストは、リソースファイルで指定されます。 テーブルタグを持たないコードは、次のとおりです。
<strutsbean:message key="page.select.keywordslabel"/> <strutshtml:text property="keywords" size="40" maxlength="40"/>
<strutsbean:message key="page.select.countrylabel"/> <strutshtml:select property="country" > <option value=""> </option> <strutshtml:options property="countryList" /> </strutshtml:select>
optionタグは、選択リストで空白の行を提供します。 optionsタグは、countryListコレクションを参照し、ここにはSelectFormクラスで取得したデータが含まれます。
<strutshtml:submit> <strutsbean:message key="button.submitall"/> </strutshtml:submit>
ボタンには、属性はありません。 メッセージタグは、カスタムラベルを指定します。
次のエクササイズでは、ActionFormクラスが、どのようにフォームのフィールドに一致するプロパティを定義するか確認します。
Strutsを使用する場合、各フォームにはActionFormを拡張するクラスがあります。 クラスには、フォームでフィールドを一致させるプロパティがあります。 Actionクラスには、プロパティの値を取得することで、フォームをインスタンス化し、送信されたデータにアクセスするコードがあります。
ProverbsアプリケーションのSelectFormクラスには、国およびキーワードの入力フィールドに対するプロパティがあります。 また、ドロップダウンリストで表示される国に対して、countryListプロパティもあります。 フォームを初期化してリセットするreset()メソッドは、国のリストに対してデータベースを照会するプライベートgetList()メソッドを呼び出します。
このエクササイズでは、フォームでどのようにプロパティが実装され、データが初期化されるか確認します。
getList()メソッドでは、todayアクションで使用する方法と同じデータアクセス方法を使用します。 希望する場合は、 EXERCISE 6-1: データベースからデータを取得するおよび EXERCISE 6-3: Actionクラスを使用してJSPページのデータを設定するでこの方法を復習します。
ご存知のように、各Strutsアクションは、Actionを拡張するクラスを使用します。 Find Proverbsアクティビティでは、いずれのアクションでも同じActionクラスを使用します。
コードでは、perform()に渡されたActionMappingオブジェクトのパスプロパティをチェックして、現在のアクションを特定できます。 Proverbsアプリケーションでは、SelectActionクラスはパスプロパティをチェックせず、代わりにフォームのフィールドに値があるかどうかチェックします。
フォームフィールドが空白の場合、perform()により、selectアクションに対してfailureキーワードが返され、空白のフォームが表示されます。resultsアクションについては、結果が返されないページが表示されます。
フォームに値がある場合、これはresultsアクションでなければならず、perform()は、ことわざのデータを取得して、forwardキーワードsuccessを返します。 結果ページにはデータが表示されます。
このエクササイズでは、SelectFormオブジェクトをインスタンス化し、データの集合を取得するコードを確認します。
resultsアクションは、selectアクションと同じActionクラスを使用しますが、設定では、forwardキーワードに対して異なるJSPページを指定しています。 次の2つのページがあります。
「成功」ページには、検索条件に一致するすべてのことわざが表示されます。 Actionクラスでのデータの取得のToday痴 Proverbアクティビティで説明したように、SelectActionは、ProverbオブジェクトのコレクションをJSPページでアクセス可能なリクエストに保存します。
「失敗」ページには、条件に一致することわざがなかったことが報告されます。 メッセージのテキストは、ApplicationResourcesファイルに保存されます。
このエクササイズでは、取得したことわざを表示するコードや、検索結果がなかったことを報告するページを確認します。
Struts iterateタグを検索して、Proverbオブジェクトのプロパティを表示するタグを確認します。
データタグがどのように動作するか覚えていますか? 覚えていない場合は、 データを表示するためのStrutsタグを復習します。
ことわざが検索されなかったことを報告し、テキストを特定するメッセージキーpage.selectfailed.infoを検索します。
(オプション) ApplicationResources.propertiesを開き、メッセージキーの実際のテキストを参照します。
Find Proverbsアクティビティをテストする準備が整いました。
Workbenchで、[Project]>[Build and Archive]の順に選択します。
[Output]ペインに作成エラーが表示されないようにします。
メニューから[Project]>[Deploy Archive]の順に選択します。
[Output]ペインに配備エラーが表示されないようにします。
アプリケーションのURLを入力します。 一般的なURLは、次のとおりです。
http://localhost/ProverbsCloud/ProverbStart/index.jsp
アプリケーションのナビゲーションメニューで[Find Proverbs]をクリックします。
Find Proverbsフォームが表示されます。
フォームに入力します。 ドロップダウンリストから国を選択したり、キーワードを指定したり、またはその両方を実行できます。
ヒント: 国を[China]、キーワードをmanと指定してみます。 [Country]の残りの空 白でキーワードをlightと指定してみます。
アプリケーションで、条件に一致することわざが検索された場合、Your ProverbsというタイトルのselectResults.jspが表示されます。
条件に一致することわざがない場合、selectFailed.jspが表示されます。
アプリケーションの開発 このレッスンでは、Proverbsチュートリアルアプリケーションの次の部分を作成するか、次の部分について学習しました。
Workbenchツールの使用 Workbenchで、次のツールを使用しました。
次のレッスン 次のレッスンでは、データベースを更新するフォームの処理について学習します。
![]() ![]() ![]() ![]() ![]() |
チュートリアル : 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.