(57)【要約】    【課題】  コンテントを繰り返し表示させる部品のリテラル文字列について、ＪＳＰ拡張タグの記述を必要とすることなく描画可能として記述性と可読性を容易にする。    【解決手段】  コンテントをウェブ画面に繰り返し表示する部品を表示するソース文の部分３６にＪＳＰ拡張タグを使用せずにリテラル文字列＜ｌｉ＞、＜／ｌｉ＞を直接記述する。ソース文の実行によりリテラル文字列から生成したコンポーネント４６、５０を含むコンポーネントツリー３８を構築する仕組みを作る。コンポーネントツリー３８の各コンポーネントの実行によりＨＴＭＬを出力してブラウザのウェブ画面にコンテントを繰り返し表示する。    【選択図】      図４
2006154993.tif 000002
【特許請求の範囲】
【請求項１】
コンテントをウェブ画面に固定表示する標準タグに対し設けられたコンテントをウェブ画面に動的に表示する拡張タグを使用して、部品をウェブ画面に動的に表示する拡張タグ文を記述したソース文を作成し、前記ソース文の拡張タグ文に基づいて構築されたコンポーネントツリーを実行することにより、ＨＴＭＬを出力してブラウザのウェブ画面に前記部品を表示させるサーバのウェブ画面作成方法に於いて、
コンテントをウェブ画面に繰り返し表示する部品を表示するソース文に拡張タグを使用せずにリテラル文字列を直接記述するソース文記述ステップと、
前記ソース文の実行により前記リテラル文字列を含むコンポーネントツリーを構築するツリー構築ステップと、
前記コンポーネントツリーの各コンポーネントの実行によりＨＴＭＬを出力してブラウザのウェブ画面に前記コンテントを繰り返し表示した部品を表示させるＨＴＭＬ出力ステップと、
を備えたことを特徴とするウェブ画面作成方法。
【請求項２】
請求項１記載のウェブ画面作成方法に於いて、
ソース文記述ステップは、コンテントをウェブ画面に繰り返し表示する部品を表示させるソース文として、
コンテントの描画形式を指定する第１拡張開始タグと第１拡張終了タグを備えた第１拡張タグ文と、
前記第１拡張タグ文のボディに記述された前記コンテントの出力開始位置を指定する第１リテラル文字列、前記コンテントの繰り返し値を示す第２拡張開始タグと第２拡張終了タグを備えたボディを持たない第２拡張タグ文、及び前記コンテントの出力終了位置を指定する第２リテラル文字列と、
を記述し、
前記ツリー構築ステップは、
前記第１拡張開始タグに対応する第１コンポーネントを取得して先行する親コンポーネントの子コンポーネントリストに追加し、
前記第１拡張タグ文がボディを持つことを判別して前記第１コンポーネントに拡張子コンポーネント操作オブジェクトを設定し、
前記第２拡張開始タグに対応する第２コンポーネントを取得して前記第１コンポーネントの子コンポーネントリスト及び拡張子コンポーネントリストに追加し、
前記第１コンポーネントに前記拡張子コンポーネント操作オブジェクトが設定されていることを判別して、前記第１リテラル文字列を前記拡張子コンポーネントリストの第１コンポーネントの前に位置するように追加し、
前記第２拡張タグ文がボディを持たないことを判別して前記第２拡張終了タグの処理を終了し、
次に前記第１拡張タグ文がボディを持つことを判別して前記第２リテラル文字列を取得して前記拡張子コンポーネントリストに追加する、
ことを特徴とするウェブ画面作成方法。
【請求項３】
請求項２記載のウェブ画面作成方法に於いて、
前記ツリー構築ステップは、
変数として拡張子コンポーネントリストを備え、操作として前記拡張子コンポーネントリストにリテラル文字列を格納するメソッドを備えたクラスを事前登録し、
前記第１拡張開始タグを処理した際に、前記第１拡張開始タグに対応して取得した第１コンポーネントを親コンポーネントとする値を前記クラスに代入して前記拡張子コンポーネント操作オブジェクトを生成することを特徴とするウェブ画面作成方法。
【請求項４】
コンテントをウェブ画面に固定表示する標準タグに対し設けられたコンテントをウェブ画面に動的に表示する拡張タグを使用して、部品をウェブ画面に動的に表示する拡張タグ文を記述したソース文を作成し、前記ソース文の拡張タグ文に基づいて構築されたコンポーネントツリーを実行することにより、ＨＴＭＬファイルを出力してブラウザのウェブ画面に前記部品を表示させるサーバのコンピュータに、
コンテントをウェブ画面に繰り返し表示する部品を表示するソース文に拡張タグを使用せずにリテラル文字列を直接記述するソース文記述ステップと、
前記ソース文の実行により前記リテラル文字列を含むコンポーネントツリーを構築するツリー構築ステップと、
前記コンポーネントツリーの各コンポーネントの実行によりＨＴＭＬファイルを出力してブラウザのウェブ画面に前記コンテントを繰り返し表示した部品を表示させるＨＴＭＬ出力ステップと、
を実行させることを特徴とするウェブ画面作成プログラム。
【請求項５】
コンテントをウェブ画面に固定表示する標準タグに対し設けられたコンテントをウェブ画面に動的に表示する拡張タグを使用して、部品をウェブ画面に動的に表示する拡張タグ文を記述したソース文を作成し、前記ソース文の拡張タグ文に基づいて構築されたコンポーネントツリーを実行することにより、ＨＴＭＬを出力してブラウザのウェブ画面に前記部品を表示させるサーバに於いて、
コンテントをウェブ画面に繰り返し表示する部品を表示するソース文に拡張タグを使用せずにリテラル文字列を直接記述するソース文記述部と、
前記ソース文の実行により前記リテラル文字列を含むコンポーネントツリーを構築するツリー構築部と、
前記コンポーネントツリーの各コンポーネントの実行によりＨＴＭＬを出力してブラウザのウェブ画面に前記コンテントを繰り返し表示した部品を表示させるＨＴＭＬ出力部と、
を実行させることを特徴とするサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力フィールドやボタン等の部品をブラウザのウェブ画面に動的に表示するウェブ画面作成方法、プログラム及びサーバに関し、特に、リスト等のコンテントの値を繰り返し表示させる部品をウェブ画面に動的に表示させるウェブ画面作成方法、プログラム及びサーバに関する。
【背景技術】
【０００２】
従来、動的にウェブ画面を作成するための技術としてＪａｖａＳｅｒｖｅｒ Ｐａｇｅｓ (以下「ＪＳＰ」という)が知られている。尚、Ｊａｖａ及びＪａｖａＳｅｒｖｅｒは登録商標である。ＪＳＰにより画面は、図１４のＪＳＰファイル２００に示すように、ＨＴＭＬによる画面記述の中でＪＳＰタグ２０２と呼ばれるタグを混在させて使用して作成する。ＪＳＰ拡張タグ２０２の部分がサーバ２０４でＨＴＭＬの断片またはテキストに置換されることにより、動的な画面を実現する。
【０００３】
図１４についてＪＳＰの実行の仕組みを説明すると次のようになる。サーバ２０４はＪＳＰファイル２００を上から順に実行し、ＪＳＰ拡張タグ２０２が出現すると、そのＪＳＰ拡張タグ２０２に対応するＪａｖａクラスを呼び出す。呼び出されたＪａｖａクラスは文字列を出力する。
【０００４】
サーバ２０４は、ＪＳＰ拡張タグ２０２の部分を、ＪＳＰ実行結果の出力２０６に示すようにＪａｖａクラスが出力した文字列２０８で置換してブラウザ２１０に送信する。呼び出されたＪａｖａクラスは、他のオブジェクトの参照、ファイルの読み書き、データベースへのアクセスなどを含め、基本的に、Ｊａｖａで実現可能な任意の処理を実行できる。
【０００５】
ＪＳＰ拡張タグの処理は、より詳細には以下のようになる。ＪＳＰ拡張タグには１種類につき1つのＪａｖａクラスが用意されており、ＪＳＰ拡張タグの開始タグが出現すると、対応するＪａｖａクラスのオブジェクトが作成され、そのオブジェクトの「タグ開始処理」が実行される。ＪＳＰ拡張タグの終了タグが出現すると、開始タグ出現時に作成されたオブジェクトの「タグ終了処理」が実行される。オブジェクトの「タグ開始処理」と「タグ終了処理」で出力された文字列によってＪＳＰ拡張タグの開始タグと終了タグの部分が置換され、ブラウザに送信される。
【０００６】
一方、ウェブ画面にＧＵＩ（Ｇｒａｐｈｉｃａｌ Ｕｓｅｒ Ｉｎｔｅｒｆａｃｅ）を作成するための技術として、ＪａｖａＳｅｒｖｅｒ  Ｆａｃｅｓ (以下「ＪＳＦ」という)が知られている。ＪＳＦの仕様は、スタンドアロンのＧＵＩアプリケーションをＪＳＦで作成することも視野に入れているが、ウェブアプリケーションの画面の作成に使うのが代表的な用途である。
【０００７】
ＪＳＦでは、入力フィールド、ボタンなどのＧＵＩ部品をコンポーネントとよび、画面はコンポーネントのツリーで表現する。ＪＳＦで画面を作成するには何らかの方法でコンポーネントのツリーを定義する必要がある。このためウェブ画面の作成にＪＳＦを使用する場合は、ＪＳＰでコンポーネントのツリーを定義する。例えば図１５（Ｃ）の入力フィールド２１８とボタン２２０を設けた表示画面２１６は、図１５（Ａ）のＪＳＰファイル２１２に基づき図１２（Ｂ）のコンポーネントのツリー２１４で表現する。
【０００８】
図１５（Ｂ）のように、コンポーネント２２４の子供にコンポーネント２２６、２２８、２３０があるような構成のコンポーネントツリー２１４を作る場合は、コンポーネント２２４に対応する２行目と６行目のＪＳＰ拡張タグの内側(コンテント)に、コンポーネント２２６、２２８、２３０に対応する３〜５行目のそれぞれにＪＳＰ拡張タグを記述する。なお、コンポーネントツリー２１４は根となるコンポーネント２２２の子供にコンポーネント２２４があり、１行目と７行目のコンポーネント２２２のＪＳＰ拡張タグの内側にコンポーネント２２４のＪＳＰ拡張タグを記述する。
【０００９】
次にＪＳＦの実行の仕組みを説明する。ＪＳＦで作成したウェブ画面の表示は、大きくわけてコンポーネントツリーを作る段階と、ＨＴＭＬを出力する段階の２段階で実行される。
【００１０】
（１）コンポーネントツリーの作成
ＪＳＰを実行することにより、コンポーネントツリーを構築する。ＪＳＰ拡張タグに対応するプログラムは、ＨＴＭＬの断片やテキストを出力するのではなく、そのＪＳＰタグに対応するコンポーネントのオブジェクトを作成する。ＪＳＰ拡張タグが他のＪＳＰ拡張タグに囲まれている場合は、コンポーネントのオブジェクトを、他のＪＳＰ拡張タグに対応するコンポーネントの子供となるように設定する。以上の処理によりコンポーネントツリーが構築される。
【００１１】
（２）ＨＴＭＬの出力
コンポーネントツリーができた後に、ＨＴＭＬの出力が行なわれる。ＨＴＭＬの出力は、ツリーの根のコンポーネントを先頭に、下のように再帰的に実行されます。
（Ａ）前出力を実行する(自分の子供より前に出力する必要がある内容を出力)。
（Ｂ）全ての子供コンポーネントの出力処理を実行する。
（Ｃ）後出力を実行する(自分の子供より後に出力する必要がある内容を出力)。
【００１２】
ＨＴＭＬの出力を図１６（Ａ）のコンポーネントツリー２１４について説明する。ステップＳ１〜Ｓ７の順に出力処理が実行される。ステップＳ１、Ｓ２が前出力、ステップＳ６、Ｓ７が後出力である。ｏｕｔｐｕｔＴｅｘｔコンポーネント２２６は子供を持たないため、前出力と後出力は連続して実行されることから、前出力と後出力をまとめてステップＳ３で示す。ステップＳ４、Ｓ５のｉｎｐｕｔＴｅｘｔコンポーネント２２８とｃｏｍｍａｎｄＢｕｔｔｏｎコンポーネント２３０も同様である。
【００１３】
図１６（Ｂ）はステップＳ２〜Ｓ６で出力されたＨＴＭＬ２３２であり、図１６（Ｃ）の表示画面２１６が表示される。
【００１４】
このように標準仕様として提供されるＪＳＦは、ウェブアプリケーションの画面部品をコンポーネントと結びつけ、コンポーネント間の関係をコンポーネントツリーとしてサーバ側で管理している。このときＪＳＦの標準実装であるＪＳＰでは、ＪＳＰ拡張タグの階層構造がコンポーネントツリーとしてマッピングされる。
【００１５】
しかし、コンポーネントツリーはＪＳＦ仕様上に作成されたＪＳＰ拡張タグに対してのみ作成され、その他のリテラル文字列、例えばタグ<ＢＲ>や<ＨＲ>はツリーの構成要素に含まれない。なお、リテラル文字列とは拡張ＪＳＰタグ以外の部分を指す。
【００１６】
ここで、図１７のようにタグ内のコンテントを繰り返し画面に表示させる部品を考える。図１７（Ａ）のＪＳＰファイル２３４は３〜６行目に繰り返し部分２３６をもち、 SHAPE  \* MERGEFORMAT 繰り返し部分２３６の１つのコンポーネントである「ｕｊｉ：ｌｉｓｔ」が繰り返しを制御する。即ち、前項目＜ｌｉ＞から後項目＜／ｌｉ＞までリスト＜ｕｊｉ：ｖａｌｕｅ＞を繰り返し出力して画面に表示させる部品の作成を意図している。
【００１７】
しかし、図１７（Ｂ）のＵＩコンポーネントツリー２４０では繰り返される文字列中のリテラル部分となる前項目<ｌｉ>および後項目</ｌｉ>がコンポーネントとして存在しないため、描画することができない。
【００１８】
そのため図１７（Ａ）の４行目における繰り返される文字列のリテラル部分についても、ＪＳＦ上では図１８（Ａ）の４〜６行目のように、ＪＳＦ拡張タグとして記述する必要があり、この場合には、図１８（Ｂ）のように繰り返される部分についてコンポーネント２５６、２４８、２５８が構築され、例えば図１８（Ｃ）の「値１」、「値２」、「値３」を繰り返し表示する部品を作成できる。
【特許文献１】特開２００１−１０９６３３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１９】
しかしながら、このような従来のコンテントを繰り返し表示させる部品を作成する文字列のリテラル部分について、ＪＳＰファイル上でＪＳＦ拡張タグとして記述した場合には、記述量が増える上、ＪＳＰとしての可読性が低下するという問題がある。
【００２０】
即ち、従来はウェブ画面の作成にＨＴＭＬやＪＳＰを使っており、これらの場合、画面に固定的に表示されるリテラル文字列としてのテキストやＨＴＭＬのタグは、ＨＴＭＬファイルやＪＳＰファイルにそのまま記述すれば済む。しかし、ＪＳＦを使用した場合には、コンテントを繰り返し表示させる部品のリテラル文字列についてもＪＳＰ拡張タグを使って記述する必要があり、記述量が増える。
【００２１】
また、記述したＪＳＰを読む場合には、従来のＨＴＭＬやＪＳＰの記述と比べると、コンテントを繰り返し表示させる部品についてＪＳＰ拡張タグが書き足される結果となるために、読みにくくなる。特に、これまでＨＴＭＬやＪＳＰを使っていた利用者がＪＳＦに移行した場合には、従来と違ったルールでリテラル文字列を記述する必要があるため、記述しにくいと同時に読みにくいものとなる。
【００２２】
本発明は、コンテントを繰り返し表示させる部品のリテラル文字列について、ＪＳＰ拡張タグの記述を必要とすることなく描画可能として記述性と可読性を容易にするウェブ画面作成方法、プログラム及び装置を提供することを目的とする。
【００２３】
また本発明は、ＪＳＦの仕様を変更せず、且つ既存のＪＳＦ用部品を改造することなく、コンテントを繰り返し表示させる部品のリテラル文字列について、ＪＳＰ拡張タグによる記述を必要とすることなく描画可能なウェブ画面作成方法、プログラム及び装置を提供することを目的とする。
【課題を解決するための手段】
【００２４】
本発明は、サーバのウェブ画面作成方法を提供する。本発明は、コンテントをウェブ画面に固定表示する標準タグに対し設けられたコンテントをウェブ画面に動的に表示する拡張タグを使用して、部品をウェブ画面に動的に表示する拡張タグ文を記述したソース文を作成し、ソース文の拡張タグ文に基づいて構築されたコンポーネントツリーを実行することにより、ＨＴＭＬを出力してブラウザのウェブ画面に部品を表示させるサーバのウェブ画面作成方法に於いて、
コンテントをウェブ画面に繰り返し表示する部品を表示するソース文に拡張タグを使用せずにリテラル文字列を直接記述するソース文記述ステップと、
ソース文の実行によりリテラル文字列を含むコンポーネントツリーを構築するツリー構築ステップと、
コンポーネントツリーの各コンポーネントの実行によりＨＴＭＬファイルを出力してブラウザのウェブ画面にコンテントを繰り返し表示した部品を表示させるＨＴＮＬ出力ステップと、
を備えたことを特徴とする。
【００２５】
ソース文記述ステップは、コンテントをウェブ画面に繰り返し表示する部品を表示させるソース文として、
コンテントの描画形式を指定する第１拡張開始タグと第１拡張終了タグを備えた第１拡張タグ文と、
第１拡張タグ文のボディに記述されたコンテントの出力開始位置を指定する第１リテラル文字列、コンテントの繰り返し値を示す第２拡張開始タグと第２拡張終了タグを備えたボディを持たない第２拡張タグ文、及びコンテントの出力終了位置を指定する第２リテラル文字列と、
を記述する。
【００２６】
ツリー構築ステップは、
第１拡張開始タグに対応する第１コンポーネントを取得して先行する親コンポーネントの子コンポーネントリストに追加し、
第１拡張タグ文がボディを持つことを判別して第１コンポーネントに拡張子コンポーネント操作オブジェクトを設定し、
第２拡張開始タグに対応する第２コンポーネントを取得して第１コンポーネントの子コンポーネントリスト及び拡張子コンポーネントリストに追加し、
第１コンポーネントに拡張子コンポーネント操作オブジェクトが設定されていることを判別して、第１リテラル文字列を拡張子コンポーネントリストの第１コンポーネントの前に位置するように追加し、
第２拡張タグ文がボディを持たないことを判別して第２拡張終了タグの処理を終了し、
第１拡張タグ文がボディを持つことを判別して第２リテラル文字列を取得して拡張子コンポーネントリストに追加する、
ことを特徴とする。
【００２７】
ツリー構築ステップは、変数として拡張子コンポーネントリストとを備え、操作として拡張子コンポーネントリストにリテラル文字列を格納するメソッドを備えたクラスを事前登録し、第１拡張開始タグを処理した際に、第１拡張開始タグに対応して取得した第１コンポーネントを親コンポーネントとする値をクラスに代入して拡張子コンポーネント操作オブジェクトを生成する。
【００２８】
拡張子コンポーネント操作オブジェクトのメソッドは、第２拡張開始タグの処理により呼出され、そのとき出力バッファに出力されている第１リテラル文字列を取得して拡張子コンポーネントリストに格納すると共に、第１拡張終了タグの処理により呼出され、そのとき出力する。
【００２９】
本発明のウェブ画面作成方法は、コンテントをウェブ画面に固定表示する標準タグはＨＴＭＬにより提供され、部品をウェブ画面に動的に表示する拡張タグはＪａｖａＳｅｒｖｅｒ  Ｆａｃｅｓ（ＪＳＦ）により提供される。
【００３０】
本発明は、サーバのコンピュータにより実行されるウェブ画面作成プログラムを提供する。即ち本発明は、コンテントをウェブ画面に固定表示する標準タグに対し設けられたコンテントをウェブ画面に動的に表示する拡張タグを使用して、部品をウェブ画面に動的に表示する拡張タグ文を記述したソース文を作成し、ソース文の拡張タグ文に基づいて構築されたコンポーネントツリーを実行することにより、ＨＴＭＬを出力してブラウザのウェブ画面に部品を表示させるサーバのコンピュータに、
コンテントをウェブ画面に繰り返し表示する部品を表示するソース文に拡張タグを使用せずにリテラル文字列を直接記述するソース文記述ステップと、
ソース文の実行によりリテラル文字列を含むコンポーネントツリーを構築するツリー構築ステップと、
コンポーネントツリーの各コンポーネントの実行によりＨＴＭＬを出力してブラウザのウェブ画面にコンテントを繰り返し表示した部品を表示させるＨＴＭＬ出力ステップと、
を実行させることを特徴とする。
【００３１】
本発明は、ウェブ画面作成用のサーバを提供する。即ち、本発明は、コンテントをウェブ画面に固定表示する標準タグに対し設けられたコンテントをウェブ画面に動的に表示する拡張タグを使用して、部品をウェブ画面に動的に表示する拡張タグ文を記述したソース文を作成し、ソース文の拡張タグ文に基づいて構築されたコンポーネントツリーを実行することにより、ＨＴＭＬを出力してブラウザのウェブ画面に前記部品を表示させるサーバに於いて、
コンテントをウェブ画面に繰り返し表示する部品を表示するソース文に拡張タグを使用せずにリテラル文字列を直接記述するソース文記述部と、
ソース文の実行により前記リテラル文字列を含むコンポーネントツリーを構築するツリー構築部と、
コンポーネントツリーの各コンポーネントの実行によりＨＴＭＬを出力してブラウザのウェブ画面に前記コンテントを繰り返し表示した部品を表示させるＨＴＭＬ出力部と、
を実行させることを特徴とする。
【００３２】
なお、本発明によるウェブ画面作成プログラム及びサーバの詳細は、本発明によるウェブ画面作成方法基本的に同じになる。
【発明の効果】
【００３３】
本発明は、リテラル文字列もコンポーネントツリーの一部として捉える仕組みを取り入れることで、ＪＳＦにおいて、コンテントを繰り返し表示する部品を実現する場合に、そのコンテントで出現するリテラル文字列をＪＳＰ拡張タグを使用せずに直接記述でき、従来のＪＳＦによる記述より記述量が減少し、また文字列リテラルがそのままＪＳＰファイル中に現れるため読みやすくなる。
【００３４】
また、これまでＨＴＭＬやＪＳＰを使っていた利用者にとっては、「文字列リテラルはそのままファイルに記述すればよい」という従来のＨＴＭＬ及びＪＳＰファイルのルールがそのままＪＳＦにも適用できる結果となり、記述性と可読性が向上する。
【００３５】
更に、リテラル文字列もコンポーネントツリーの一部として捉える仕組みをＪＳＦの仕様を変更せずに実現することができ、更に、既存のＪＳＦ用部品を改造せずにそのまま使用することができる。
【発明を実施するための最良の形態】
【００３６】
図１は本発明によるウェブ画面作成処理が適用されるサーバを備えたネットワーク環境の説明図である。図１において、ウェブコンテントを提供するサーバ１０はインターネット１２を介してクライアント１４−１〜１４−３に接続しており、クライアント１４−１〜１４−３のそれぞれにはサーバ１０のウェブコンテントを閲覧するためのブラウザ１６−１〜１６−３が設けられている。
【００３７】
例えばクライアント１４−１のブラウザ１６−１によりサーバ１０にウェブコンテントの閲覧のリクエストを発行すると、このリクエストを受けてサーバ１０側でリクエスト送信元の画面構造からツリー的な画面構造を構築し、ＨＴＭＬに変換してクライアント１４−１に送ることでウェブ画面をブラウザ１６−１により表示する。
【００３８】
図１のサーバ１０は通信制御部１８と画面作成部２０を備えている。画面作成部２０にはソース文記述部２２、ツリー構築部２４及びＨＴＭＬ出力部２６が設けられている。画面作成部２０は例えばクライアント１４−１のブラウザ１６−１よりウェブページ閲覧のリクエストを受けた際にリクエスト送信元の画面構造からサーバサイトに擬似的な画面を構築する。
【００３９】
このサーバサイトで構築する擬似的な画面とはＪＳＰに記述したＪＳＦタグの階層をサーバサイトのＪａｖａオブジェクトに再構築したコンテントツリーを作成することである。ＪＳＦのタグはサーバサイドではＵＩコンポーネントというＪａｖａオブジェクトで表現されている。
【００４０】
画面作成部２０に設けたソース文記述部２２はコンテントをウェブ画面に繰り返し表現する部品を表示するソース文にＪＳＰ拡張タグを使用せずにリテラル文字列を直接記述している。ツリー構築部２４はリテラル文字列を含むコンポーネントツリーを表示する。ＨＴＭＬ出力部２６はコンポーネントツリーの各コンポーネント、すなわちオブジェクトの実行によりＨＴＭＬを出力してリクエスト元のブラウザ１６−１のウェブ画面にコンテントを繰り返し表示した部品を表示させる。
【００４１】
図２は本発明のウェブ画面作成処理を実行させるサーバ１０のアプリケーション実行機能のブロック図である。図２において、サーバ１０にはソースファイル１００、Ｊａｖａコンパイラ１０２、クラス定義ファイル１０４、Ｊａｖａ仮想マシン１０６、ライブラリ１０８及びＣＰＵ１１０が設けられている。
【００４２】
ソースファイル１００はインタープリター型言語で記述されており、Ｊａｖａコンパイラ１０２でバイトコードと呼ばれる中間言語に変換した後、クラス定義ファイル１０４によりクラスからオブジェクトを生成し、Ｊａｖａ仮想マシン１０６でバイトコードをライブラリ１０８を参照しながらバイトコードをマシン語に翻訳しながら処理を実行する。
【００４３】
このようなＪａｖａアプリケーション実行環境はサーバ側で実行するアプリケーションであることから、いわゆるサーバアプレットであり、サーバアプレットの表示部分を特化したＪＳＰ２８を使用している。ＪＳＰ２８は基本的にウェブ画面の固定表示を行なうためタグ文であるが、ウェブ画面の動的な表示を行なうため拡張ＪＳＰタグ文が提供される。
【００４４】
一方、入力フィールドやボタン部品を動的に実現するためＪＳＦ３０が提供されており、ＪＳＦ３０はＪＳＰタグ文にＪＳＦタグを階層的に記述して動的に部品をウェブ画面に実現している。
【００４５】
図２におけるサーバ１０は、例えば図３のようなコンピュータのハードウェア資源により実現される。図３のコンピュータにおいて、ＣＰＵ１２０のバス１２１にはＲＡＭ１２２、ハードディスクコントローラ（ソフト）１２４、フロッピィディスクドライバ（ソフト）１３０、ＣＤ−ＲＯＭドライバ（ソフト）１３４、マウスコントローラ１３８、キーボードコントローラ１４２、ディスプレイコントローラ１４６、通信用ボード１５０が接続される。
【００４６】
ハードディスクコントローラ１２４はハードディスクドライブ１２６を接続し、本発明の画面作成処理を実行するプログラムをローディングしており、コンピュータの起動時にハードディスクドライブ１２６から必要なプログラムを呼び出して、ＲＡＭ１２２上に展開し、ＣＰＵ１２０により実行する。
【００４７】
フロッピィディスクドライバ１３０にはフロッピィディスクドライブ（ハード）１３２が接続され、フロッピィディスク（Ｒ）に対する読み書きができる。ＣＤ−ＲＯＭドライバ１３４に対しては、ＣＤドライブ（ハード）１３６が接続され、ＣＤに記憶されたデータやプログラムを読み込むことができる。
【００４８】
マウスコントローラ１３８はマウス１４０の入力操作をＣＰＵ１２０に伝える。キーボードコントローラ１４２はキーボード１４４の入力操作をＣＰＵ１２０に伝える。ディスプレイコントローラ１４６は表示部１４８に対して表示を行う。通信用ボード１５０は無線を含む通信回線１５２を介して外部のインターネット上のクライアントとの間で通信を行う。
【００４９】
図４はコンテントを繰り返し表示させる部品を実現する本発明によるソース文を記述したＪＳＰファイル、コンポーネントツリー及びウェブ画面の説明図である。図４（Ａ）のＪＳＰファイル３４にあっては、コンテントの繰り返しを表示する部品を記述した部分３６について、本発明にあっては、４行目に示すようにそのコンテントで実現するリテラル文字列＜ｌｉ＞、＜／ｌｉ＞をＪＳＰ拡張タグを使用せずに直接記述するようにしている。
【００５０】
このようにＪＳＰファイル３４にＪＳＰ拡張タグを使用せずに直接記述したリテラル文字列を含むＪＳＰファイル３４のソース文を処理することで、図４（Ｂ）に示すようにＪＳＰタグに使用したコンポーネント４０、４２、４４及び４８に加え、ソース文に直接記述したリテラル文字列４６、５０をそのままコンポーネントとして生成したコンポーネントツリー３８を構築するようにしている。
【００５１】
即ち、標準的なＪＳＦにあっては実線で示すＪＳＰ拡張タグに対応したコンポーネント４０、４２、４４及び４８のコンポーネントツリーのみが構築され、これではコンテントの繰り返しを表示する部品を実現することができないが、本発明にあってはソース文に直接記述したリテラル文字列４６、５０につきＪＳＰ拡張タグと同様に対応するコンポーネントを生成して、親となるコンポーネント４４に点線のように設定したコンポーネントツリー３８を構築している。
【００５２】
本発明により構築された図４（Ｂ）のコンポーネントツリー３８の各コンポーネント、即ちオブジェクトを実行することによりＨＴＭＬ変換が行なわれ、これにより図４（Ｃ）のウェブ画面５２に示すようにコンテントとして「値１」「値２」「値３」を繰り返し表示する部品を実現することができる。
【００５３】
次に本発明においてリテラル文字列をコンポーネントツリー３８の構築に使用する仕組みを説明する。ＪＳＦの仕様ではコンポーネントツリー上のＵＩコンポーネントが保持している子コンポーネントリストは必ずＵＩコンポーネントリストでなければならない。そこでＪＳＦの仕様を満足する子コンポーネントリストは別に本発明にあってはリテラル文字列を含む子コンポーネントリストとして拡張子コンポーネントリストを保持するしくみを採用している。
【００５４】
図５（Ａ）はＪＳＦの仕様を満足する標準コンポーネントリスト５４であり、この標準コンポーネントリスト５４は図４（Ｂ）のコンポーネントツリー３８におけるコンテントを繰り返し表示する部品を実現するための部分３６に対応したコンポーネント４４を親コンポーネントとし、その子コンポーネントリスト５６にはＪＳＦ拡張タグに対応したＵＩコンポーネント４８を保持している。
【００５５】
このような図５（Ａ）の標準コンポーネントリスト５４に対し、本発明にあっては図５（Ｂ）の拡張コンポーネントリスト５８に示すように、標準コンポーネントリスト５４と同じ子コンポーネントリスト５６に加え、さらに拡張子コンポーネントリスト６０を設け、拡張子コンポーネントリスト６０にはＵＩコンポーネント４８に加えリテラル文字列４６、５０を保持するようにしている。
【００５６】
このような図５（Ｂ）の拡張子コンポーネントリスト６０を作成するためには、図４（Ａ）の４行目に示すように、子供となるＪＳＰ拡張タグ＜ｕｊｉ：ｖａｌｕｅ／＞で分断されたリテラル文字列＜ｌｉ＞、＜／ｌｉ＞を取得し、リテラル文字列とＪＳＰ拡張タグの出現順序を保持する必要がある。
【００５７】
ＪＳＰの仕様によるとリテラル文字列は出力バッファに出力されることから、子供となるＪＳＰ拡張タグが出現したタイミングで次の処理を実行すれば、リテラル文字列を保持した拡張子コンポーネントリスト６０を作成できる。
（１）出力バッファを読出しリテラル文字列として保存する。
（２）保存したリテラル文字列の次に出現するＪＳＰ拡張タグのＵＩコンポーネントを記録する。
【００５８】
図６（Ａ）は図４（Ａ）のＪＳＰファイル３４、３〜５行目のコンテントを繰り返し表示する部分を３６のみを抜粋しており、この部分３６を処理することで図６（Ｂ）に示すように標準コンポーネントリストの場合と同じＵＩコンポーネント４８を保持した子コンポーネントリスト６６に加え、ＵＩコンポーネント４８の前後にリテラル文字列４６、５０を保持した拡張子コンポーネントリスト６８を作成することができる。
【００５９】
このようなリテラル文字列４６、５０保持した拡張子コンポーネントリスト６８を作るための具体的な方法を検討する前に、図６（Ａ）に抜粋したＪＳＰファイル３４の実行を説明すると、次の順番で処理が行なわれる。
（１）ｕｊｉ：ｌｉｓｔＲｅｎｄｅｒｅｒのタグ開始処理でｕｊｉ：ｌｉｓｔＲｅｎｄｅｒｅｒのコンポーネントのオブジェクトが作成される。
（２）リテラル文字列＜ｌｉ＞を出力バッファに出力する。
（３）ｕｊｉ：ｖａｌｕｅタグ開始処理
ｕｊｉ：ｖａｌｕｅのタグ開始処理の中でｕｊｉ：ｖａｌｕｅコンポーネントのオブジェクトが生成され、ｕｊｉ：ｌｉｓｔＲｅｎｄｅｒｅｒコンポーネントの子どもとして生成される。
（４）ｕｊｉ：ｖａｌｕｅタグ終了処理
（５）＜／ｌｉ＞を出力バッファに出力
（６）ｕｊｉ：ｌｉｓｔＲｅｎｄｅｒｅｒのタグ終了処理
【００６０】
このような図６（Ａ）に発生したＪＳＰファイル３４の実行を前提にリテラル文字列を保持した拡張子コンポーネントリストを作成する本発明の処理にあっては次の仕組みを作成する。
（１）タグの開始処理でコンポーネントを作成した直後にコンポーネントにタグの拡張子コンポーネント作成オブジェクトを設定する。
（２）子コンポーネントが親コンポーネントに追加されるタイミングで親コンポーネントが前記（１）で親タグに指示を出し、親タグが拡張子コンポーネント操作オブジェクトによる処理を実行する。
【００６１】
ここで拡張子コンポーネント操作オブジェクトは図７に示す変数と操作を持っている。図７において、拡張子コンポーネント操作オブジェクト７０は変数として拡張子コンポーネントリスト７２を持ち、ここにコンポーネントリスト格納部７６を確保している。また操作として拡張子コンポーネント操作７４を持ち、この拡張子コンポーネント操作７４を受けるとメソッド７８を実行して拡張子コンポーネントリストにリテラル文字列を格納する。
【００６２】
メソッド７８は具体的には図６（Ａ）の３行目の拡張タグ開始処理により呼び出され、そのとき出力バッファに出力されているリテラル文字列＜ｌｉ＞を取得して拡張子コンポーネントリスト６８に格納する。また図６（Ａ）の５行目の拡張終了タグの処理により呼び出され、そのとき出力バッファに出力されているリテラル文字列＜／ｌｉ＞を取得して拡張子コンポーネントリスト６８に格納する。
【００６３】
このような拡張タグの開始処理と終了処理のそれぞれが図７の拡張子コンポーネント操作オブジェクト７０を読み出して出力バッファに出力されているリテラル文字列を拡張子コンポーネントリスト６８に追加する処理は、ＪＳＦの仕様を変更せずに図７の拡張子コンポーネント操作オブジェクト７０を生成するクラスオブジェクトを作成してクラス定義ファイルに事前登録することで実現できる。
【００６４】
またリテラル文字列を含むコンポーネントツリーの仕組みにより実現した部品のコンテントにより、既存のＪＳＦ用の部品を改造することなくそのまま使用することができる。
【００６５】
図８は本発明によるコンテントを繰り返し表示する部品のソース文を一般化して示したソースファイルの説明図である。図８（Ａ）はコンテントを繰り返し表示させる部分を抜粋して一般化したソースファイル８０であり、第１拡張開始タグと第１拡張終了タグで構成される第１拡張タグの中に、第１リテラル文字列、第２拡張開始タグと第２拡張終了タグで構成された第２拡張タグ及び第２リテラル文字列を記述している。ここで第１拡張タグはその中の２〜４行目に示すようにボディを持っているが、第２拡張タグはボディを持たない。
【００６６】
図８（Ｂ）は、図８（Ａ）のソースファイル８０をＪＳＰソースファイル８１として記号化しており、次の関係を持っている。
第１拡張開始タグ＝タグＡ、
第１リテラル文字列ｈｒ、
第２拡張開始タグ＝タグＢ、
第２拡張終了タグ＝／タグＢ
第２リテラル文字列＝ｂｒ
第１拡張終了タグ＝／タグＡ
ただし、＜＞は省略している。
【００６７】
図９は図８（Ｂ）のＪＳＰソースファイル８１の処理で構築されたコンポーネントツリー８２であり、図９（Ｂ）はコンポーネントツリー８２を構築するためのタグＡのコンポーネントリスト９２である。
【００６８】
タグＡのコンポーネントツリー９２はＪＳＰ標準の子コンポーネントリスト９４にタグＢのＵＩコンポーネント８８を保持し、拡張子コンポーネントリスト９６にタグＢのＵＩコンポーネント８８に加え、リテラル文字列８６、９０を保持している。
【００６９】
図１０は図８（Ａ）のソースファイル８０からコンポーネントリストを作成するためのフローチャートである。図１０の処理にあっては、ステップＳ１で第１拡張開始タグの処理を実行し、ステップＳ２で第２拡張開始タグの処理を実行し、ステップＳ３で第２拡張終了タグの処理を実行し、ステップＳ４で第１拡張終了タグの処理を実行する。
【００７０】
ステップＳ１、Ｓ２の開始タグの処理は図１１のサブルーチンのフローチャートで実行される。図１１の開始タグの処理を、図８（Ａ）の第１拡張開始タグに対応する図８（Ｂ）のタグＡについて説明すると次のようになる。
【００７１】
ステップＳ１でタグＡに対応するコンポーネント８４を取得する。次にステップＳ２でコンポーネント８４の親コンポーネントを取得する。そしてステップＳ３で子コンポーネントリストにタグＡのコンポーネント８４を追加する。尚、ステップＳ２、Ｓ３における親コンポーネントは図８（Ｂ）のタグＡの前に出現してすでに処理が済んでいる。
【００７２】
次にステップＳ４でタグＡのコンポーネント８４に拡張子コンポーネント操作オブジェクトが設定されているか否かチェックする。この場合にはオブジェクトの設定がないことからステップＳ５をスキップし、ステップＳ６でタグＡがボディを持つか否かチェックする。
【００７３】
タグＡは図８（Ｂ）の２〜４行目のボディを持つことからステップＳ７に進み、コンポーネント８４のタグＡに拡張子コンポーネント操作オブジェクトを設定して、図１０にリターンする。このようにして図１０ステップＳ１の第１拡張開始タグの処理が終了するとステップＳ２で第２拡張開始タグの処理が行なわれる。
【００７４】
この第２拡張開始タグは図８（Ｂ）の３行目の＜タグＢ＞の処理となる。そこで図１１を参照して、開始タグＢの処理を説明すると次のようになる。ステップＳ１でタグＡに対応するコンポーネント８８を取得し、ステップＳ２でコンポーネント８８の親コンポーネント８４を取得し、ステップＳ３で親コンポーネント８４の子コンポーネントリスト９４及び拡張子コンポーネントリスト９６のそれぞれにコンポーネント８８を追加する。
【００７５】
次にステップＳ４でコンポーネント８４のタグＡに拡張子コンポーネント操作オブジェクトが設定されているか否かチェックする。この場合には前回の開始タグＡの処理で拡張子コンポーネント操作オブジェクトが設定されていることから、ステップＳ５に進み、タグオブジェクトのリテラル文字列取得処理を実行する。
【００７６】
ステップＳ５のリテラル文字列取得処理は図１２のサブルーチンのフローチャートで実行される。図１２にあっては、ステップＳ１でそのときバッファに出力されているリテラル文字列を取得し、ステップＳ２で取得したリテラル文字列を拡張子コンポーネントリスト９６にリテラル文字列８８として追加して、図１１にリターンする。
【００７７】
続いて図１１のステップＳ６でタグＢがボディを持つか否かチェックする。図８（Ｂ）の３行目のようにタグＢはボディを持たないことから、ステップＳ７のコンポーネント８８のタグＢに対する拡張子コンポーネント操作オブジェクトの設定はスキップして図１０のメインルーチンにリターンする。
【００７８】
図１０にあっては、続いてステップＳ３の第２拡張終了タグとなる図８（Ｂ）の＜／タグＢ＞の処理を行なう。このタグ終了処理は図１３のサブルーチンのフローチャートで実行される。図１３において終了タグ処理はステップＳ１でタグＢがボディを持つか否かチェックし、タグＢはボディを持たないことからステップＳ２のリテラル文字列取得処理はスキップして図１０にリターンする。
【００７９】
続いて図１０のステップＳ４の第１拡張終了タグの処理として図８（Ｂ）の２行目の＜タグＡ＞の処理が行なわれる。この終了処理についても図１３のサブルーチンのフローチャートが実行され、ステップＳ１でタグＡはボディを持つか否かチェックし、タグＡはボディを持っていることからステップＳ２のリテラル文字列取得処理を実行する。
【００８０】
リテラル文字列取得は図１２のサブルーチンのフローチャートを実行する。即ち図１２のステップＳ１でそのとき出力バッファに出力されているリテラル文字列＜ｂｒ＞を取得し、ステップＳ２で拡張子コンポーネントリスト９６にリテラル文字列９０として図１０のメインルーチンにリターンし、一連の処理を終了する。
【００８１】
ここで、本発明にあってはＪＳＦの仕様を変更せずにリテラル文字列を格納した拡張子コンポーネントリストを作成する処理を構築しているが、もし仕様を変更しても良い場合には次の方法を使用することができる。
【００８２】
（方法１）
図９（Ａ）のコンポネントツリーを例にとると、タグＡに対する子タグＢの処理が始まった時点で出力バッファを読み取だしてリテラル文字列ｈｒをコンポーネントとして拡張子コンポーネントリストに保持し、リテラル文字列ｈｒの次に出現するタグＢのコンポーネントを拡張子コンポーネントリストに保存する。
【００８３】
この方法にあっては子タグＢが拡張子コンポーネントリストを作成する処理を実行するため既存のＪＳＰタグと子タグＢとして使う場合にはリテラル文字列を取得してリストに追加する処理と次に出現する子タグＢのコンポーネントを追加する改造が必要となる。
【００８４】
（方法２）
子タグＢの処理が始まった時点で子タグ出現の合図を親タグＡに通知し、この合図を受けて親タグＡがリテラル文字列を取得して拡張子コンポーネントリストに追加し、次に出現する子タグＢのコンポーネントを追加する処理を実行する。
【００８５】
この方法にあってはリテラル文字列の取得機能の実装は新たに提供するタグである親タグＡに限定できるが、子タグＢはタグの処理が始まった時点で親タグに合図を送る仕組みを実装している必要があり、既存のＪＳＦのタグをこのような子タグとして使用できないため子タグの改造を必要とする。
【００８６】
また本発明はサーバのコンピュータにより実行されるウェブ画面の作成処理プログラムを提供するものであり、図１０〜図１３のフローチャートに示した処理手順を備えている。
【００８７】
尚、本発明は上記の実施形態に限定されず、その目的と利点を損なうことのない適宜の変形を含む。また本発明は上記の実施形態に示した数値による限定は受けない。
【００８８】
ここで本発明の特徴をまとめて列挙すると次の付記のようになる。
【００８９】
（付記）
（付記１）
コンテントをウェブ画面に固定表示する標準タグに対し設けられたコンテントをウェブ画面に動的に表示する拡張タグを使用して、部品をウェブ画面に動的に表示する拡張タグ文を記述したソース文を作成し、前記ソース文の拡張タグ文に基づいて構築されたコンポーネントツリーを実行することにより、ＨＴＭＬを出力してブラウザのウェブ画面に前記部品を表示させるサーバのウェブ画面作成方法に於いて、
コンテントをウェブ画面に繰り返し表示する部品を表示するソース文に拡張タグを使用せずにリテラル文字列を直接記述するソース文記述ステップと、
前記ソース文の実行により前記リテラル文字列を含むコンポーネントツリーを構築するツリー構築ステップと、
前記コンポーネントツリーの各コンポーネントの実行によりＨＴＭＬを出力してブラウザのウェブ画面に前記コンテントを繰り返し表示した部品を表示させるＨＴＭＬ出力ステップと、
を備えたことを特徴とするウェブ画面作成方法。（１）
【００９０】
（付記２）
付記１記載のウェブ画面作成方法に於いて、
ソース文記述ステップは、コンテントをウェブ画面に繰り返し表示する部品を表示させるソース文として、
コンテントの描画形式を指定する第１拡張開始タグと第１拡張終了タグを備えた第１拡張タグ文と、
前記第１拡張タグ文のボディに記述された前記コンテントの出力開始位置を指定する第１リテラル文字列、前記コンテントの繰り返し値を示す第２拡張開始タグと第２拡張終了を備えたボディを持たない第２拡張タグ文、及び前記コンテントの出力終了位置を指定する第２リテラル文字列と、
を記述し、
前記ツリー構築ステップは、
前記第１拡張開始タグに対応する第１コンポーネントを取得して先行する親コンポーネントの子コンポーネントリストに追加し、
前記第１拡張タグがボディを持つことを判別して前記第１コンポーネントに拡張子コンポーネント操作オブジェクトを設定し、
前記第２拡張開始タグに対応する第２コンポーネントを取得して前記第１コンポーネントの子コンポーネントリスト及び拡張子コンポーネントリストに追加し、
前記第１コンポーネントに前記拡張子コンポーネント操作オブジェクトが設定されていることを判別して、前記第１リテラル文字列を前記拡張子コンポーネントリストの第１コンポーネントの前に位置するように追加し、
前記第２拡張終了タグ文がボディを持たないことを判別して前記第２拡張終了タグの処理を終了し、
次に前記第１拡張タグがボディを持つことを判別して前記第２リテラル文字列を取得して前記拡張子コンポーネントリストに追加する、
ことを特徴とするウェブ画面作成方法。（２）
【００９１】
（付記３）
付記２記載のウェブ画面作成方法に於いて、
前記ツリー構築ステップは、
変数として拡張子コンポーネントリストを備え、操作として前記拡張子コンポーネントリストにリテラル文字列を格納するメソッドを備えたクラスを事前登録し、
前記第１拡張開始タグを処理した際に、前記第１拡張開始タグに対応して取得した第１コンポーネントを親コンポーネントとする値を前記クラスに代入して前記拡張子コンポーネント操作オブジェクトを生成することを特徴とするウェブ画面作成方法。（３）
【００９２】
（付記４）
付記３記載のウェブ画面作成方法に於いて、
前記拡張子コンポーネント操作オブジェクトのメソッドは、
前記第２拡張開始タグの処理により呼出され、そのとき出力バッファに出力されている前記第１リテラル文字列を取得して前記拡張子コンポーネントリストに格納すると共に、前記第１拡張終了タグの処理により呼出され、そのとき出力バッファに出力されている前記第２リテラル文字列を取得して前記拡張子コンポーネントリストに格納することを特徴とするウェブ画面作成方法。
【００９３】
（付記５）
付記１乃至４のいずれかに記載のウェブ画面作成方法に於いて、コンテントをウェブ画面に固定表示する標準タグはＪａｖａＳｅｒｖｅｒ  Ｐａｇｅｓ（ＪＳＰ）により提供され、部品をウェブ画面に動的に表示する拡張タグはＪａｖａＳｅｒｖｅｒ  Ｆａｃｅｓにより提供されることを特徴とするウェブ画面作成方法。
【００９４】
（付記６）
コンテントをウェブ画面に固定表示する標準タグに対し設けられたコンテントをウェブ画面に動的に表示する拡張タグを使用して、部品をウェブ画面に動的に表示する拡張タグ文を記述したソース文を作成し、前記ソース文の拡張タグ文に基づいて構築されたコンポーネントツリーを実行することにより、ＨＴＭＬを出力してブラウザのウェブ画面に前記部品を表示させるサーバのコンピュータに、
コンテントをウェブ画面に繰り返し表示する部品を表示するソース文に拡張タグを使用せずにリテラル文字列を直接記述するソース文記述ステップと、
前記ソース文の実行により前記リテラル文字列を含むコンポーネントツリーを構築するツリー構築ステップと、
前記コンポーネントツリーの各コンポーネントの実行によりＨＴＭＬを出力してブラウザのウェブ画面に前記コンテントを繰り返し表示した部品を表示させるＨＴＭＬ出力ステップと、
を実行させることを特徴とするウェブ画面作成プログラム。（４）
【００９５】
（付記７）
付記６記載のウェブ画面作成プログラムに於いて、
ソース文記述ステップは、コンテントをウェブ画面に繰り返し表示する部品を表示させるソース文として、
コンテントの描画形式を指定する第１拡張開始タグと第１拡張終了タグを備えた第１拡張タグ文と、
前記第１拡張タグ文のボディに記述された前記コンテントの出力開始位置を指定する第１リテラル文字列、前記コンテントの繰り返し値を示す第２拡張開始タグと第２拡張終了タグを備えたボディを持たない第２拡張タグ文、及び前記コンテントの出力終了位置を指定する第２リテラル文字列と、
を記述し、
前記ツリー構築ステップは、
前記第１拡張開始タグに対応する第１コンポーネントを取得して先行する親コンポーネントの子コンポーネントリストに追加し、
前記第１拡張タグ文がボディを持つことを判別して前記第１コンポーネントに拡張子コンポーネント操作オブジェクトを設定し、
次に前記第２拡張開始タグに対応する第２コンポーネントを取得して前記第１コンポーネントの子コンポーネントリスト及び拡張子コンポーネントリストに追加し、
前記第１コンポーネントに前記拡張子コンポーネント操作オブジェクトが設定されていることを判別して、前記第１リテラル文字列を前記拡張子コンポーネントリストの第１コンポーネントの前に位置するように追加し、
前記第２拡張終了タグがボディを持たないことを判別して前記第２拡張終了タグの処理を終了し、
前記第１拡張タグ文がボディを持つことを判別して前記第２リテラル文字列を取得して前記拡張子コンポーネントリストに追加する、
ことを特徴とするウェブ画面作成プログラム。
【００９６】
（付記８）
付記７記載のウェブ画面作成プログラムに於いて、
前記ツリー構築ステップは、
変数として拡張子コンポーネントリストとを備え、操作として前記拡張子コンポーネントリストにリテラル文字列を格納するメソッドを備えたクラスを事前登録し、
前記第１拡張開始タグを処理した際に、前記第１拡張開始タグに対応して取得した第１コンポーネントを親コンポーネントとする値を前記クラスに代入して前記拡張子コンポーネント操作オブジェクトを生成することを特徴とするウェブ画面作成プログラム。
【００９７】
（付記９）
付記８記載のウェブ画面作成プログラムに於いて、
前記拡張子コンポーネント操作オブジェクトのメソッドは、
前記第２拡張開始タグの処理により呼出され、そのとき出力バッファに出力されている前記第１リテラル文字列を取得して前記拡張子コンポーネントリストに格納すると共に、前記第１拡張終了タグの処理により呼出され、そのとき出力バッファに出力されている前記第２リテラル文字列を取得して前記拡張子コンポーネントリストに格納することを特徴とするウェブ画面作成プログラム。
【００９８】
（付記１０）
付記６乃至９のいずれかに記載のウェブ画面作成プログラムに於いて、コンテントをウェブ画面に固定表示する標準タグはＪａｖａＳｅｒｖｅｒ  Ｐａｇｅｓ（ＪＳＰ）により提供され、部品をウェブ画面に動的に表示する拡張タグはＪａｖａＳｅｒｖｅｒ  Ｆａｃｅｓにより提供されることを特徴とするウェブ画面作成プログラム。
【００９９】
（付記１１）
コンテントをウェブ画面に固定表示する標準タグに対し設けられたコンテントをウェブ画面に動的に表示する拡張タグを使用して、部品をウェブ画面に動的に表示する拡張タグ文を記述したソース文を作成し、前記ソース文の拡張タグ文に基づいて構築されたコンポーネントツリーを実行することにより、ＨＴＭＬを出力してブラウザのウェブ画面に前記部品を表示させるサーバに於いて、
コンテントをウェブ画面に繰り返し表示する部品を表示するソース文に拡張タグを使用せずにリテラル文字列を直接記述するソース文記述部と、
前記ソース文の実行により前記リテラル文字列を含むコンポーネントツリーを構築するツリー構築部と、
前記コンポーネントツリーの各コンポーネントの実行によりＨＴＭＬを出力してブラウザのウェブ画面に前記コンテントを繰り返し表示した部品を表示させるＨＴＭＬ出力部と、
を実行させることを特徴とするサーバ。（５）
【０１００】
（付記１２）
付記１１記載のサーバに於いて、
ソース文記述部は、コンテントをウェブ画面に繰り返し表示する部品を表示させるソース文として、
コンテントの描画形式を指定する第１拡張開始タグと第１拡張終了タグを備えた第１拡張タグ文と、
前記第１拡張タグ文のボディに記述された前記コンテントの出力開始位置を指定する第１リテラル文字列、前記コンテントの繰り返し値を示す第２拡張開始タグと第２拡張終了タグを備えたボディを持たない第２拡張タグ文、及び前記コンテントの出力終了位置を指定する第２リテラル文字列と、
を記述し、
前記ツリー構築部は、
前記第１拡張開始タグに対応する第１コンポーネントを取得して先行する親コンポーネントの子コンポーネントリストに追加し、
前記第１拡張タグ文がボディを持つことを判別して前記第１コンポーネントに拡張子コンポーネント操作オブジェクトを設定し、
前記第２拡張開始タグに対応する第２コンポーネントを取得して前記第１コンポーネントの子コンポーネントリスト及び拡張子コンポーネントリストに追加し、
前記第１コンポーネントに前記拡張子コンポーネント操作オブジェクトが設定されていることを判別して、前記第１リテラル文字列を前記拡張子コンポーネントリストの第１コンポーネントの前に位置するように追加し、
前記第２拡張了タグ文がボディを持たないことを判別して前記第２拡張終了タグの処理を終了し、
前記第１拡張タグ文がボディを持つことを判別して前記第２リテラル文字列を取得して前記拡張子コンポーネントリストに追加する、
ことを特徴とするサーバ。
【０１０１】
（付記１３）
付記１２記載のサーバに於いて、
前記ツリー構築部は、
変数として拡張子コンポーネントリストとを備え、操作として前記拡張子コンポーネントリストにリテラル文字列を格納するメソッドを備えたクラスを事前登録し、
前記第１拡張開始タグを処理した際に、前記第１拡張開始タグに対応して取得した第１コンポーネントを親コンポーネントとする値を前記クラスに代入して前記拡張子コンポーネント操作オブジェクトを生成することを特徴とするサーバ。
【０１０２】
（付記１４）
付記１３記載のサーバに於いて、
前記拡張子コンポーネント操作オブジェクトのメソッドは、
前記第２拡張開始タグの処理により呼出され、そのとき出力バッファに出力されている前記第１リテラル文字列を取得して前記拡張子コンポーネントリストに格納すると共に、前記第１拡張終了タグの処理により呼出され、そのとき出力バッファに出力されている前記第２リテラル文字列を取得して前記拡張子コンポーネントリストに格納することを特徴とするサーバ。
【０１０３】
（付記１５）
付記１１乃至１４のいずれかに記載のサーバに於いて、コンテントをウェブ画面に固定表示する標準タグはＪａｖａＳｅｒｖｅｒ  Ｐａｇｅｓ（ＪＳＰ）により提供され、部品をウェブ画面に動的に表示する拡張タグはＪａｖａＳｅｒｖｅｒ  Ｆａｃｅｓにより提供されることを特徴とするサーバ。
【図面の簡単な説明】
【０１０４】
【図１】本発明が適用されるサーバを備えたネットワーク環境の説明図
【図２】本発明のウェブ画面作成処理を実行するサーバのアプリケーション実行機能のブロック図
【図３】図２のサーバが適用されるコンピュータのハードウェア環境のブロック図
【図４】コンテントを繰り返し表示させる部品を実現する本発明によるソース文を記述したＪＳＰファイル、コンポーネントツリー及びウェブ画面の説明図
【図５】リテラル文字列をコンポーネントに含むコンポーネントツリーの構築に必要なコンポーネントリストの説明図
【図６】コンテントを繰り返し表示させる部分のソース文と作成されたコンポーネントリストの説明図
【図７】リテラル文字列をコンポーネントリストに追加するための仕組みを実現する本発明で新たに設けた拡張子コンポーネント操作オブジェクトの説明図
【図８】本発明によるコンテントを繰り返し表示させる部品のソース文を一般化して示したソースファイルの説明図
【図９】図８のソースファイルから生成したコンポーネントツリーとコンポーネントリストの説明図
【図１０】図８のソースファイルからコンポーネントリストを作成する処理のフローチャート
【図１１】図１０の開始タグ処理のフローチャート
【図１２】図１０のリテラル文字取得処理のフローチャート
【図１３】図１０の終了タグ処理のフローチャート
【図１４】従来のＪＳＰの拡張タグ文による動的なウェブ画面の表示処理の説明図
【図１５】従来のＪＳＦによるソース文からコンポーネントツリーを構築して動的に部品画面を作成する処理の説明図
【図１６】従来のＪＳＦによるコンポーネントツリーの作成と、その後のＨＴＭＬ出力による表示画面の説明図
【図１７】コンテントを繰り返し表示させる部品にリテラル文字を含む描画不能なＪＳＰファイルとそこから生成したコンポーネントツリーの説明図
【図１８】リテラル文字をＪＳＰ拡張タグによる書き直しでリテラル文字を含むコンポーネントツリーを構築してコンテントを繰り返し表示させる部品を作成する従来処理の説明図
【符号の説明】
【０１０５】
１０：サーバ
１２：インターネット
１４−１〜１４−３：クライアント
１６−１〜１６−３：ブラウザ
１８：通信制御部
２０：画面作成部
２２：ソース文記述部
２４：ツリー構築部
２６：ＨＴＭＬ出力部
３４：ＪＳＰファイル
３６：繰り返される部分
３８、８２：コンポーネントツリー
４０、４２、４４、４８、８４、８８：コンポーネント
４６、５０、８６、９０：リテラル文字列
５２：ウェブ画面
５４：標準コンポーネントリスト
５６、６６、９４：子コンポーネントリスト
５８、６４、９２：拡張コンポーネントリスト
６０、６８、７２、９６：拡張子コンポーネントリスト
７０：拡張子コンポーネント操作オブジェクト
７４：拡張子コンポーネント操作
７６：コンポーネントリスト格納部
７８：メソッド
８０：ソースファイル
【図１】
2006154993.tif 000003
【図２】
2006154993.tif 000004
【図３】
2006154993.tif 000005
【図４】
2006154993.tif 000006
【図５】
2006154993.tif 000007
【図６】
2006154993.tif 000008
【図７】
2006154993.tif 000009
【図８】
2006154993.tif 000010
【図９】
2006154993.tif 000011
【図１０】
2006154993.tif 000012
【図１１】
2006154993.tif 000013
【図１２】
2006154993.tif 000014
【図１３】
2006154993.tif 000015
【図１４】
2006154993.tif 000016
【図１５】
2006154993.tif 000017
【図１６】
2006154993.tif 000018
【図１７】
2006154993.tif 000019
【図１８】
2006154993.tif 000020