FormServletクラスを継承してサーブレットクラスを作成します。作成したクラスにメソッドや変数の追加は不要です。ブラウザからのリクエストを受け付けるサーブレットとして、このサーブレットクラスを使用します。
public class FormSample extends com.fujitsu.uji.formc.FormServlet { }
GenericHandleクラスを継承してビジネスクラスを作成します。ビジネスクラスのメソッドには、電子フォームから入力したデータの処理と、電子フォームの表示の設定を記述します。ビジネスクラスの詳細については、“3.1 ビジネスクラス”を参照してください。
電子フォームを表示させるには、表示する電子フォーム名を設定したFormデータBean(com.fujitsu.uji.formc.FormDataBeanクラス)をメソッドが返却するようにします。
import com.fujitsu.uji.DispatchContext; import com.fujitsu.uji.GenericHandler; import com.fujitsu.uji.formc.FormDataBean; public class FormSampleHandler extends GenericHandler { public Object startup(DispatchContext context) { // 電子フォーム名を設定したFormDataBeanクラスを返却します。 FormDataBean formBean = new FormDataBean("SampleForm"); return formBean; } }
注意
電子フォームを表示させる場合は、DispatchContextクラスのsetResponseBeanメソッドは使用しません。
起動時に実行するビジネスクラス名、メソッド名をコマンドマップで指定します。コマンドマップの詳細は“3.6.1 コマンドマップ”を参照してください。
#commands.map ;=FormSampleHandler.startup
Webアプリケーション環境定義ファイル(web.xml)に以下を設定します。これらの設定はweb.xmlのweb-appタグのコンテントに記述します。
作成したサーブレットクラスに対し、サーブレット名とURLを設定します。 以下の記述例では、サーブレットクラスがform.FormSample、サーブレット名がformservlet、URLが/formservletです。
<servlet> <servlet-name>formservlet</servlet-name> <servlet-class>form.FormSample</servlet-class> </servlet> <servlet-mapping> <servlet-name>formservlet</servlet-name> <url-pattern>/formservlet</url-pattern> </servlet-mapping>
初期化パラメタuji.defaultEncodingにnoneを指定して、送信データの文字エンコーディングの変換が行われないようにします。
<context-param> <param-name>uji.defaultEncoding</param-name> <param-value>none</param-value> </context-param>
また、必要に応じてweb.xmlに以下を記述します。
電子フォームの格納場所を初期化パラメタuji.formPathで指定します。この指定が省略された場合、Formcoordinatorの「環境設定」で指定された格納先が使用されます。
<context-param> <param-name>uji.formPath</param-name> <param-value>c:\temp\assets</param-value> </context-param>
ユーザ定義のファクトリクラスのクラス名を初期化パラメタfactoryで指定します。ファクトリクラスの詳細は“3.5 ファクトリクラス”を参照してください。
<context-param> <param-name>factory</param-name> <param-value>form.FormFactory</param-value> </context-param>
エラーページのJSPファイル名を指定します。初期化パラメタuji.servlet.errorPageに指定します。uji.servlet.errorPageの詳細は“13.3 初期化パラメタ”を参照してください。
<context-param> <param-name>uji.servlet.errorPage</param-name> <param-value>formError.jsp</param-value> </context-param>
ポイント
エラーページをJSPで作成しておくと便利です。予期せぬエラーが発生した場合に指定したエラーページが表示されます。
以上の設定を記述したweb.xmlの例を以下に示します。
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <!-- エンコーディングは電子フォーム機能で制御するため、以下を必ず指定します --> <context-param> <param-name>uji.defaultEncoding</param-name> <param-value>none</param-value> </context-param> <!-- セションクラス等利用する場合にファクトリを指定します --> <context-param> <param-name>factory</param-name> <param-value>form.FormFactory</param-value> </context-param> <!-- エラーページの指定です --> <context-param> <param-name>uji.servlet.errorPage</param-name> <param-value>formError.jsp</param-value> </context-param> <!-- 電子フォームの格納場所を指定します。省略した場合、--> <!-- Formcoordinatorの「環境設定」で格納先を設定します。 --> <context-param> <param-name>uji.formPath</param-name> <param-value>c:\temp\assets</param-value> </context-param> <!-- 以下はサーブレット名を設定する記述です --> <servlet> <servlet-name>formservlet</servlet-name> <servlet-class>form.FormSample</servlet-class> </servlet> <servlet-mapping> <servlet-name>formservlet</servlet-name> <url-pattern>/formservlet</url-pattern> </servlet-mapping> </web-app>