ページの先頭行へ戻る
 Formcoordinatorユーザーズガイド

6.6 ステップ5:入力データを取得する

電子フォームに入力されたデータをWebアプリケーションで取得する方法を学習していきます。

このステップの概要

電子フォームで入力されたデータを取得し、取得したデータを電子フォームに設定して再表示する処理を行うシステムを作ります。

(1) 電子フォームを作成する

ステップ2で使用した電子フォームを基にして、次に示す電子フォームを作成します。

データを入力するための電子フォーム

ステップ2で使用した電子フォームに、所属と氏名を入力するエディットボックスを作成します。

  1. 電子フォームデザイナで電子フォーム「Step2-1」を開きます。

  2. スタティックテキスト項目を2個挿入して、「所属」および「氏名」という文字列を指定します。

  3. タグ名および項目名が「所属」および「氏名」のテキスト項目を挿入します。

  4. それぞれのテキスト項目のプロパティの[入力値チェック]タブで、[入力必須]チェックボックスをオンにします。

  5. コマンドボタン項目のプロパティの[送信情報]タブで、送信先を「Step5_2」に変更します。

  6. 「Step5-1」という名前で保存します。

入力データを表示するための電子フォーム

電子フォーム「Step5-1」を基にして、入力領域を読み取り専用にした電子フォームを作成します。

  1. 電子フォームデザイナで電子フォーム「Step5-1」を開きます。

  2. テキスト項目「所属」および「氏名」のプロパティで、次に示す設定情報を変更します。

    タブ名

    設定情報

    指定内容

    入力種別

    読み取り専用

    オン

  3. コマンドボタン項目「送信」を削除します。

  4. 「Step5-2」という名前で保存します。

(2) Webページを作成する

ステップ2で使用したWebページから起動するWebアプリケーションを「Step2_1」から「Step5_1」に変更します。変更したWebページを「Step5.htm」という名前で保存します。
変更する箇所を次に示します。変更する箇所は太字と下線で表しています。

Step5.htmの内容

<html>
<head>
<title>Step5 入力データを取得する</title>
</head>
<body>
<h1>Step5 入力データを取得する</h1>

<form action="servlet/Step5_1">
<input type="submit" name="送信" value="実行">
</form>

</body>
</html>

(3) Webアプリケーションを作成する

次に示すWebアプリケーションを作成します。

Webページから起動されるWebアプリケーション

電子フォームを表示するWebアプリケーションとして、「Step5_1」というクラスを作成します。ステップ2で使用したWebアプリケーションのクラス名を「Step5_1」に、電子フォーム名を「Step5-1」に変更します。
変更する箇所を次に示します。変更する箇所は太字と下線で表しています。

                            ・
                            ・
                            ・
public class Step5_1 extends HttpServlet {
  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
    throws IOException, ServletException
                            ・
                            ・
                            ・
    try {
      // OutputDataBuilderオブジェクトを生成します。
      // 生成するときに電子フォーム名を指定します。
      OutputDataBuilder odb =
        new OutputDataBuilder(request, "Step5-1");
                            ・
                            ・
                            ・

入力されたデータを取得して電子フォームに再表示するWebアプリケーション

ステップ4で使用したWebアプリケーションを基にして、入力されたデータを取得して電子フォームに再表示するWebアプリケーションとして「Step5_2」というクラスを作成します。
電子フォームに入力されたデータを取得するためのdoPost()メソッドを追加します。(1)で作成した電子フォームに入力されたデータは、次に示す構造のXMLデータになっています。

XMLデータを取得するには、InputDataBuilderクラスのgetXMLData()メソッドを使用します。取得したXMLデータから各項目のデータを取得するにはXmlDataAccessクラスを使用します。
次に示す流れで処理を行います。

  1. InputDataBuilderオブジェクトを生成する

  2. OutputDataBuilderオブジェクトを生成する

  3. Webブラウザから送信されたXMLデータ(電子フォームに入力されたデータ)を取得する

  4. XMLデータを使用してXmlDataAccessオブジェクトを生成する

  5. 取得したXMLデータから各項目のデータを取得する

  6. 取得したXMLデータをOutputDataBuilderオブジェクトに設定する

  7. OutputDataBuilderクラスのwrite()メソッドを使用してWebブラウザへHTMLデータを送信する

Step5_2クラスのソースプログラム

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.w3c.dom.Document;

import com.fujitsu.form.InputDataBuilder;
import com.fujitsu.form.OutputDataBuilder;
import com.fujitsu.form.XmlDataAccess;

import java.io.IOException;
import javax.servlet.ServletException;

public class Step5_2 extends HttpServlet {
  public void doPost(HttpServletRequest request,
                     HttpServletResponse response)
    throws IOException, ServletException
  {
    try {
      // InputDataBuilderオブジェクトを生成します。
      InputDataBuilder idb = new InputDataBuilder(request);

      // OutputDataBuilderオブジェクトを生成します。
      OutputDataBuilder odb =
        new OutputDataBuilder(request, "Step5-2");

      // 電子フォーム表示モードに環境定義モードを指定します。
      odb.setDisplayMode(odb.DISPMODE_ENV);

      // コンテントタイプを設定します。
      response.setContentType(odb.getContentType());

      // Webブラウザから送信されたXMLデータを取得します。
      Document idoc = idb.getXMLData();

      // 取得したXMLデータからXmlDataAccessオブジェクトを生成します。
      XmlDataAccess xda = new XmlDataAccess(idoc);

      // 所属を取得します。
      String belong = xda.getValue("所属");

      // 氏名を取得します。
      String name = xda.getValue("氏名");

      // 取得したXMLデータを初期値として設定します。
      odb.setXMLData(xda.getDocument(), false);

      // HTMLデータを生成し、Webブラウザへ送信します。
      odb.write(response.getOutputStream());
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

(4) Webアプリケーション環境定義ファイルを作成する

Webアプリケーション環境定義ファイル(deployment descriptor)を作成します。
ステップ3で作成した「web.xml」のWebアプリケーションのクラス名を「Step3_1」を「Step5_1」、「Step3_2」を「Step5_2」に変更します。
変更する箇所を次に示します。変更する箇所は太字と下線で表しています。

web.xmlファイルの内容

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2.2.dtd">
 
    <web-app>
 
       <servlet>
         <servlet-name>Step5_1</servlet-name>
         <servlet-class>Step5_1</servlet-class>
       </servlet>
       <servlet>
         <servlet-name>Step5_2</servlet-name>
         <servlet-class>Step5_2</servlet-class>
       </servlet>
 
       <servlet-mapping>
         <servlet-name>Step5_1</servlet-name>
         <url-pattern>/servlet/Step5_1</url-pattern>
       </servlet-mapping>
       <servlet-mapping>
         <servlet-name>Step5_2</servlet-name>
         <url-pattern>/servlet/Step5_2</url-pattern>
       </servlet-mapping>
 
    </web-app>

(5) Webサーバに配置する

(1)~(4)で作成したファイルをWebサーバに配置します。

配置するファイル

配置する場所

電子フォームのファイル

  • Step5-1.pmd

  • Step5-1.fae

  • Step5-1.psf

  • Step5-1.bip

  • Step5-2.pmd

  • Step5-2.fae

  • Step5-2.psf

  • Step5-2.bip

WindowsC:\Interstage\APC\sample\tutorial\eform

SolarisLinux/opt/FJSVfcdn/sample/tutorial/eform

Webページのファイル
Step5.htm

WindowsC:\Interstage\APC\sample\tutorial\Step5

SolarisLinux/opt/FJSVfcdn/sample/tutorial/Step5

Webアプリケーションをコンパイルしたクラスファイル

  • Step5_1.class

  • Step5_2.class

WindowsC:\Interstage\APC\sample\tutorial\Step5\WEB-INF\classes

SolarisLinux/opt/FJSVfcdn/sample/tutorial/Step5/WEB-INF/classes

Webアプリケーション環境定義ファイル
web.xml

WindowsC:\Interstage\APC\sample\tutorial\Step5\WEB-INF

SolarisLinux/opt/FJSVfcdn/sample/tutorial/Step5/WEB-INF

(6) WARファイルを作成する

アプリケーションサーバがWARファイルによるWebアプリケーションの配備に対応している場合、(5)で配置したファイルを使用して、WARファイルを作成します。jarコマンドを実行するために、Windowsの場合は、「コマンド プロンプト」を起動します。SolarisおよびLinuxの場合は、「端末エミュレータ」等を起動します。

  1. Step5フォルダ配下に移動します。
    次に示すコマンドを実行します。

    Windowscd C:\Interstage\APC\sample\tutorial\Step5

    SolarisLinuxcd /opt/FJSVfcdn/sample/tutorial/Step5

  2. 「Step5.war」という名前でWARファイルを作成します。
    次に示すコマンドを実行します。

    jar cvf Step5.war *.htm WEB-INF

(7) WARファイルを配備する

作成したWARファイルをアプリケーションサーバに配備します。配備の方法については、使用しているアプリケーションサーバのマニュアルを参照してください。

(8) 動作を確認する

  1. Webブラウザで、アドレスに「http://localhost/Step5/Step5.htm」を指定して、[移動]ボタンをクリックします。

    →Webページが表示されます。

  2. [実行]ボタンをクリックします。

    →電子フォームが表示されます。

  3. データを入力して、[送信]ボタンをクリックします。

    →次に示すメッセージが表示されます。

  4. [OK]ボタンをクリックします。
    →入力データが設定された電子フォームが表示されます。