ユーザ データを JSP から送信するには

このトピックでは、HTML フォーム、フォーム Bean (HTML フォームの Java 表現)、およびアクションを使って、ユーザ データ送信を設定する方法を説明します。

この手順では、このコード化の目標を達成するために役立つ主要なダイアログおよびウィザードに習熟することを目標とします。以下の手順は、ユーザ送信データにフォームが必要となるすべてのケースに適用できるわけではありません。たとえば、既存のフォーム Bean がある場合、以下の手順を直接適用できない場合があります。この場合、既存のリソースを利用するように以下の手順を読み替えます。すなわち、フォーム Bean を作成する手順の個所では、ドロップダウン リストから既存の項目を単に選択するようにします。

この手順では、1 つのページ フローが含まれる動的 Web プロジェクト ([新規|プロジェクト|その他|Web|動的 Web プロジェクト]) があるものと仮定しています。

送信データをモデル化するフォーム Bean を作成するには

(フォーム Bean が作成されている場合、この手順はスキップします。)

  1. ページ フロー パースペクティブを開きます ([ウィンドウ|パースペクティブを開く|ページ フロー])。
  2. [ページ フロー エクスプローラ] タブで [フォーム Bean] ノードを右クリックして [新しい内部クラス フォーム Bean] を選択します。
  3. [ページ フロー エクスプローラ] タブで、新しいフォーム Bean (デフォルト名は NewFormBean) を右クリックして [名前の変更] を選択します。フォーム Bean の名前を適切に変更します (Customer、Order など)。
  4. [ページ フロー エクスプローラ] タブで、フォーム Bean をダブルクリックして、そのソースを表示します。次の例のように、フォーム Bean にプライベート フィールドを追加します。
        @Jpf.FormBean
            public static class Customer implements java.io.Serializable {
      
            private String firstName;
            private String lastName;
      
        }
  5. コントローラ クラスの本体内で右クリックし、[ソース|Getter および Setter の生成] を選択します。これによって、フォーム Bean のプライベート フィールドの public なゲッターおよびセッター メソッドが生成されます。

フォーム Bean に基づいてアクションおよびユーザ入力フォームを作成するには

  1. フォームを表示する JSP ページを開きます。
  2. [デザイン パレット] から、[フォームの作成] ノードを JSP ページ上にドラッグ アンド ドロップします。
  3. [フォームの作成] ウィザードの [アクション] セクションで、[新規] をクリックします (使用するアクションが既に存在する場合、[新規] はクリックしないでください。代わりに、ドロップダウン リストからそのアクションを選択し、次の手順をスキップします)。
  4. [新しいアクション] ウィザードの [アクション テンプレート] フィールドで、[基本のメソッド アクション] を選択します。
    [アクション名] フィールドに、適切な名前を入力します。
    [フォーム Bean] フィールドで、上記の手順で作成したフォーム Bean を選択します。
    [転送先] フィールドで、データの送信後にユーザが転送される適切な転送先を選択します。
    [終了] をクリックします。
  5. [フォームの作成] ウィザードで [次へ] をクリックします。
    [プロパティの選択] ページで、ユーザ入力フォームに表示されるフォーム Bean フィールドを選択します。
    [次へ] をクリックします。
    [フィールドの整列] ページで、JSP ページでフィールドが表示される順番を選択します。
    [終了] をクリックします。

作成したコードは、以下のようになります。

form.jsp ページ

<netui:form action="nameAction">
    <table>
         <tr valign="top">
             <td><label for="field1"> FirstName: </label></td>
             <td><netui:textBox dataSource="actionForm.firstName" tagId="field1"></netui:textBox></td>
         </tr>
         <tr valign="top">
             <td><label for="field2"> LastName: </label></td>
             <td><netui:textBox dataSource="actionForm.lastName" tagId="field2"></netui:textBox></td>
         </tr>
    </table>
    <netui:button value="nameAction" type="submit" />
</netui:form>

Controller.java

    @Jpf.Action(forwards = { @Jpf.Forward(name = "success", path = "confirm.jsp") })
    public Forward nameAction(Controller.NameForm form) {
        Forward forward = new Forward("success");
        return forward;
    }

        ...

    @Jpf.FormBean
    public static class NameForm implements java.io.Serializable {
        private static final long serialVersionUID = 1815159769L;
	  
        private String firstName;
        private String lastName;
  
        public String getFirstName() {
            return firstName;
        }
        public void setFirstName(String firstName) {
            this.firstName = firstName;
        }
        public String getLastName() {
            return lastName;
        }
        public void setLastName(String lastName) {
            this.lastName = lastName;
        }
    }

関連トピック

[フォームの作成] ウィザード

[デザイン パレット] ビュー

JSF チュートリアル : 手順 2 : JSF Web アプリケーションを作成する


さらにヘルプが必要ですか。質問は Workshop ニュース グループまでお寄せください。