JP4553246B2 - ウェブ画面作成方法、プログラム及びサーバ - Google Patents

ウェブ画面作成方法、プログラム及びサーバ Download PDF

Info

Publication number
JP4553246B2
JP4553246B2 JP2004341599A JP2004341599A JP4553246B2 JP 4553246 B2 JP4553246 B2 JP 4553246B2 JP 2004341599 A JP2004341599 A JP 2004341599A JP 2004341599 A JP2004341599 A JP 2004341599A JP 4553246 B2 JP4553246 B2 JP 4553246B2
Authority
JP
Japan
Prior art keywords
component
extension
tag
content
statement
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004341599A
Other languages
English (en)
Other versions
JP2006154993A (ja
Inventor
登 車井
智広 松崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2004341599A priority Critical patent/JP4553246B2/ja
Priority to US11/068,156 priority patent/US7325189B2/en
Publication of JP2006154993A publication Critical patent/JP2006154993A/ja
Application granted granted Critical
Publication of JP4553246B2 publication Critical patent/JP4553246B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Document Processing Apparatus (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、入力フィールドやボタン等の部品をブラウザのウェブ画面に動的に表示するウェブ画面作成方法、プログラム及びサーバに関し、特に、リスト等のコンテントの値を繰り返し表示させる部品をウェブ画面に動的に表示させるウェブ画面作成方法、プログラム及びサーバに関する。
従来、動的にウェブ画面を作成するための技術としてJavaServer Pages (以下「JSP」という)が知られている。尚、Java及びJavaServerは登録商標である。JSPにより画面は、図14のJSPファイル200に示すように、HTMLによる画面記述の中でJSPタグ202と呼ばれるタグを混在させて使用して作成する。JSP拡張タグ202の部分がサーバ204でHTMLの断片またはテキストに置換されることにより、動的な画面を実現する。
図14についてJSPの実行の仕組みを説明すると次のようになる。サーバ204はJSPファイル200を上から順に実行し、JSP拡張タグ202が出現すると、そのJSP拡張タグ202に対応するJavaクラスを呼び出す。呼び出されたJavaクラスは文字列を出力する。
サーバ204は、JSP拡張タグ202の部分を、JSP実行結果の出力206に示すようにJavaクラスが出力した文字列208で置換してブラウザ210に送信する。呼び出されたJavaクラスは、他のオブジェクトの参照、ファイルの読み書き、データベースへのアクセスなどを含め、基本的に、Javaで実現可能な任意の処理を実行できる。
JSP拡張タグの処理は、より詳細には以下のようになる。JSP拡張タグには1種類につき1つのJavaクラスが用意されており、JSP拡張タグの開始タグが出現すると、対応するJavaクラスのオブジェクトが作成され、そのオブジェクトの「タグ開始処理」が実行される。JSP拡張タグの終了タグが出現すると、開始タグ出現時に作成されたオブジェクトの「タグ終了処理」が実行される。オブジェクトの「タグ開始処理」と「タグ終了処理」で出力された文字列によってJSP拡張タグの開始タグと終了タグの部分が置換され、ブラウザに送信される。
一方、ウェブ画面にGUI(Graphical User Interface)を作成するための技術として、JavaServer Faces (以下「JSF」という)が知られている。JSFの仕様は、スタンドアロンのGUIアプリケーションをJSFで作成することも視野に入れているが、ウェブアプリケーションの画面の作成に使うのが代表的な用途である。
JSFでは、入力フィールド、ボタンなどのGUI部品をコンポーネントとよび、画面はコンポーネントのツリーで表現する。JSFで画面を作成するには何らかの方法でコンポーネントのツリーを定義する必要がある。このためウェブ画面の作成にJSFを使用する場合は、JSPでコンポーネントのツリーを定義する。例えば図15(C)の入力フィールド218とボタン220を設けた表示画面216は、図15(A)のJSPファイル212に基づき図12(B)のコンポーネントのツリー214で表現する。
図15(B)のように、コンポーネント224の子供にコンポーネント226、228、230があるような構成のコンポーネントツリー214を作る場合は、コンポーネント224に対応する2行目と6行目のJSP拡張タグの内側(コンテント)に、コンポーネント226、228、230に対応する3〜5行目のそれぞれにJSP拡張タグを記述する。なお、コンポーネントツリー214は根となるコンポーネント222の子供にコンポーネント224があり、1行目と7行目のコンポーネント222のJSP拡張タグの内側にコンポーネント224のJSP拡張タグを記述する。
次にJSFの実行の仕組みを説明する。JSFで作成したウェブ画面の表示は、大きくわけてコンポーネントツリーを作る段階と、HTMLを出力する段階の2段階で実行される。
(1)コンポーネントツリーの作成
JSPを実行することにより、コンポーネントツリーを構築する。JSP拡張タグに対応するプログラムは、HTMLの断片やテキストを出力するのではなく、そのJSPタグに対応するコンポーネントのオブジェクトを作成する。JSP拡張タグが他のJSP拡張タグに囲まれている場合は、コンポーネントのオブジェクトを、他のJSP拡張タグに対応するコンポーネントの子供となるように設定する。以上の処理によりコンポーネントツリーが構築される。
(2)HTMLの出力
コンポーネントツリーができた後に、HTMLの出力が行なわれる。HTMLの出力は、ツリーの根のコンポーネントを先頭に、下のように再帰的に実行されます。
(A)前出力を実行する(自分の子供より前に出力する必要がある内容を出力)。
(B)全ての子供コンポーネントの出力処理を実行する。
(C)後出力を実行する(自分の子供より後に出力する必要がある内容を出力)。
HTMLの出力を図16(A)のコンポーネントツリー214について説明する。ステップS1〜S7の順に出力処理が実行される。ステップS1、S2が前出力、ステップS6、S7が後出力である。outputTextコンポーネント226は子供を持たないため、前出力と後出力は連続して実行されることから、前出力と後出力をまとめてステップS3で示す。ステップS4、S5のinputTextコンポーネント228とcommandButtonコンポーネント230も同様である。
図16(B)はステップS2〜S6で出力されたHTML232であり、図16(C)の表示画面216が表示される。
このように標準仕様として提供されるJSFは、ウェブアプリケーションの画面部品をコンポーネントと結びつけ、コンポーネント間の関係をコンポーネントツリーとしてサーバ側で管理している。このときJSFの標準実装であるJSPでは、JSP拡張タグの階層構造がコンポーネントツリーとしてマッピングされる。
しかし、コンポーネントツリーはJSF仕様上に作成されたJSP拡張タグに対してのみ作成され、その他のリテラル文字列、例えばタグ<BR>や<HR>はツリーの構成要素に含まれない。なお、リテラル文字列とは拡張JSPタグ以外の部分を指す。
ここで、図17のようにタグ内のコンテントを繰り返し画面に表示させる部品を考える。図17(A)のJSPファイル234は3〜6行目に繰り返し部分236をもち、 SHAPE \* MERGEFORMAT 繰り返し部分236の1つのコンポーネントである「uji:list」が繰り返しを制御する。即ち、前項目<li>から後項目</li>までリスト<uji:value>を繰り返し出力して画面に表示させる部品の作成を意図している。
しかし、図17(B)のUIコンポーネントツリー240では繰り返される文字列中のリテラル部分となる前項目<li>および後項目</li>がコンポーネントとして存在しないため、描画することができない。
そのため図17(A)の4行目における繰り返される文字列のリテラル部分についても、JSF上では図18(A)の4〜6行目のように、JSF拡張タグとして記述する必要があり、この場合には、図18(B)のように繰り返される部分についてコンポーネント256、248、258が構築され、例えば図18(C)の「値1」、「値2」、「値3」を繰り返し表示する部品を作成できる。
特開2001−109633号公報
しかしながら、このような従来のコンテントを繰り返し表示させる部品を作成する文字列のリテラル部分について、JSPファイル上でJSF拡張タグとして記述した場合には、記述量が増える上、JSPとしての可読性が低下するという問題がある。
即ち、従来はウェブ画面の作成にHTMLやJSPを使っており、これらの場合、画面に固定的に表示されるリテラル文字列としてのテキストやHTMLのタグは、HTMLファイルやJSPファイルにそのまま記述すれば済む。しかし、JSFを使用した場合には、コンテントを繰り返し表示させる部品のリテラル文字列についてもJSP拡張タグを使って記述する必要があり、記述量が増える。
また、記述したJSPを読む場合には、従来のHTMLやJSPの記述と比べると、コンテントを繰り返し表示させる部品についてJSP拡張タグが書き足される結果となるために、読みにくくなる。特に、これまでHTMLやJSPを使っていた利用者がJSFに移行した場合には、従来と違ったルールでリテラル文字列を記述する必要があるため、記述しにくいと同時に読みにくいものとなる。
本発明は、コンテントを繰り返し表示させる部品のリテラル文字列について、JSP拡張タグの記述を必要とすることなく描画可能として記述性と可読性を容易にするウェブ画面作成方法、プログラム及び装置を提供することを目的とする。
また本発明は、JSFの仕様を変更せず、且つ既存のJSF用部品を改造することなく、コンテントを繰り返し表示させる部品のリテラル文字列について、JSP拡張タグによる記述を必要とすることなく描画可能なウェブ画面作成方法、プログラム及び装置を提供することを目的とする。
本発明は、サーバのウェブ画面作成方法を提供する。本発明は、コンテントをウェブ画面に固定表示する標準タグに対し設けられたコンテントをウェブ画面に動的に表示する拡張タグを使用して、部品をウェブ画面に動的に表示する拡張タグ文を記述したソース文を作成し、ソース文の拡張タグ文に基づいて構築されたコンポーネントツリーを実行することにより、HTMLを出力してブラウザのウェブ画面に部品を表示させるサーバのウェブ画面作成方法に於いて、
コンテントをウェブ画面に繰り返し表示する部品を表示するソース文に拡張タグを使用せずにリテラル文字列を直接記述するソース文記述ステップと、
ソース文の実行によりリテラル文字列を含むコンポーネントツリーを構築するツリー構築ステップと、
コンポーネントツリーの各コンポーネントの実行によりHTMLファイルを出力してブラウザのウェブ画面にコンテントを繰り返し表示した部品を表示させるHTNL出力ステップと、
を備えたことを特徴とする。
ソース文記述ステップは、コンテントをウェブ画面に繰り返し表示する部品を表示させるソース文として、
コンテントの描画形式を指定する第1拡張開始タグと第1拡張終了タグを備えた第1拡張タグ文と、
第1拡張タグ文のボディに記述されたコンテントの出力開始位置を指定する第1リテラル文字列、コンテントの繰り返し値を示す第2拡張開始タグと第2拡張終了タグを備えたボディを持たない第2拡張タグ文、及びコンテントの出力終了位置を指定する第2リテラル文字列と、
を記述する。
ツリー構築ステップは、
第1拡張開始タグに対応する第1コンポーネントを取得して先行する親コンポーネントの子コンポーネントリストに追加し、
第1拡張タグ文がボディを持つことを判別して第1コンポーネントに拡張子コンポーネント操作オブジェクトを設定し、
第2拡張開始タグに対応する第2コンポーネントを取得して第1コンポーネントの子コンポーネントリスト及び拡張子コンポーネントリストに追加し、
第1コンポーネントに拡張子コンポーネント操作オブジェクトが設定されていることを判別して、第1リテラル文字列を拡張子コンポーネントリストの第1コンポーネントの前に位置するように追加し、
第2拡張タグ文がボディを持たないことを判別して第2拡張終了タグの処理を終了し、
第1拡張タグ文がボディを持つことを判別して第2リテラル文字列を取得して拡張子コンポーネントリストに追加する、
ことを特徴とする。
ツリー構築ステップは、変数として拡張子コンポーネントリストとを備え、操作として拡張子コンポーネントリストにリテラル文字列を格納するメソッドを備えたクラスを事前登録し、第1拡張開始タグを処理した際に、第1拡張開始タグに対応して取得した第1コンポーネントを親コンポーネントとする値をクラスに代入して拡張子コンポーネント操作オブジェクトを生成する。
拡張子コンポーネント操作オブジェクトのメソッドは、第2拡張開始タグの処理により呼出され、そのとき出力バッファに出力されている第1リテラル文字列を取得して拡張子コンポーネントリストに格納すると共に、第1拡張終了タグの処理により呼出され、そのとき出力する。
本発明のウェブ画面作成方法は、コンテントをウェブ画面に固定表示する標準タグはHTMLにより提供され、部品をウェブ画面に動的に表示する拡張タグはJavaServer Faces(JSF)により提供される。
本発明は、サーバのコンピュータにより実行されるウェブ画面作成プログラムを提供する。即ち本発明は、コンテントをウェブ画面に固定表示する標準タグに対し設けられたコンテントをウェブ画面に動的に表示する拡張タグを使用して、部品をウェブ画面に動的に表示する拡張タグ文を記述したソース文を作成し、ソース文の拡張タグ文に基づいて構築されたコンポーネントツリーを実行することにより、HTMLを出力してブラウザのウェブ画面に部品を表示させるサーバのコンピュータに、
コンテントをウェブ画面に繰り返し表示する部品を表示するソース文に拡張タグを使用せずにリテラル文字列を直接記述するソース文記述ステップと、
ソース文の実行によりリテラル文字列を含むコンポーネントツリーを構築するツリー構築ステップと、
コンポーネントツリーの各コンポーネントの実行によりHTMLを出力してブラウザのウェブ画面にコンテントを繰り返し表示した部品を表示させるHTML出力ステップと、
を実行させることを特徴とする。
本発明は、ウェブ画面作成用のサーバを提供する。即ち、本発明は、コンテントをウェブ画面に固定表示する標準タグに対し設けられたコンテントをウェブ画面に動的に表示する拡張タグを使用して、部品をウェブ画面に動的に表示する拡張タグ文を記述したソース文を作成し、ソース文の拡張タグ文に基づいて構築されたコンポーネントツリーを実行することにより、HTMLを出力してブラウザのウェブ画面に前記部品を表示させるサーバに於いて、
コンテントをウェブ画面に繰り返し表示する部品を表示するソース文に拡張タグを使用せずにリテラル文字列を直接記述するソース文記述部と、
ソース文の実行により前記リテラル文字列を含むコンポーネントツリーを構築するツリー構築部と、
コンポーネントツリーの各コンポーネントの実行によりHTMLを出力してブラウザのウェブ画面に前記コンテントを繰り返し表示した部品を表示させるHTML出力部と、
を実行させることを特徴とする。
なお、本発明によるウェブ画面作成プログラム及びサーバの詳細は、本発明によるウェブ画面作成方法基本的に同じになる。
本発明は、リテラル文字列もコンポーネントツリーの一部として捉える仕組みを取り入れることで、JSFにおいて、コンテントを繰り返し表示する部品を実現する場合に、そのコンテントで出現するリテラル文字列をJSP拡張タグを使用せずに直接記述でき、従来のJSFによる記述より記述量が減少し、また文字列リテラルがそのままJSPファイル中に現れるため読みやすくなる。
また、これまでHTMLやJSPを使っていた利用者にとっては、「文字列リテラルはそのままファイルに記述すればよい」という従来のHTML及びJSPファイルのルールがそのままJSFにも適用できる結果となり、記述性と可読性が向上する。
更に、リテラル文字列もコンポーネントツリーの一部として捉える仕組みをJSFの仕様を変更せずに実現することができ、更に、既存のJSF用部品を改造せずにそのまま使用することができる。
図1は本発明によるウェブ画面作成処理が適用されるサーバを備えたネットワーク環境の説明図である。図1において、ウェブコンテントを提供するサーバ10はインターネット12を介してクライアント14−1〜14−3に接続しており、クライアント14−1〜14−3のそれぞれにはサーバ10のウェブコンテントを閲覧するためのブラウザ16−1〜16−3が設けられている。
例えばクライアント14−1のブラウザ16−1によりサーバ10にウェブコンテントの閲覧のリクエストを発行すると、このリクエストを受けてサーバ10側でリクエスト送信元の画面構造からツリー的な画面構造を構築し、HTMLに変換してクライアント14−1に送ることでウェブ画面をブラウザ16−1により表示する。
図1のサーバ10は通信制御部18と画面作成部20を備えている。画面作成部20にはソース文記述部22、ツリー構築部24及びHTML出力部26が設けられている。画面作成部20は例えばクライアント14−1のブラウザ16−1よりウェブページ閲覧のリクエストを受けた際にリクエスト送信元の画面構造からサーバサイトに擬似的な画面を構築する。
このサーバサイトで構築する擬似的な画面とはJSPに記述したJSFタグの階層をサーバサイトのJavaオブジェクトに再構築したコンテントツリーを作成することである。JSFのタグはサーバサイドではUIコンポーネントというJavaオブジェクトで表現されている。
画面作成部20に設けたソース文記述部22はコンテントをウェブ画面に繰り返し表現する部品を表示するソース文にJSP拡張タグを使用せずにリテラル文字列を直接記述している。ツリー構築部24はリテラル文字列を含むコンポーネントツリーを表示する。HTML出力部26はコンポーネントツリーの各コンポーネント、すなわちオブジェクトの実行によりHTMLを出力してリクエスト元のブラウザ16−1のウェブ画面にコンテントを繰り返し表示した部品を表示させる。
図2は本発明のウェブ画面作成処理を実行させるサーバ10のアプリケーション実行機能のブロック図である。図2において、サーバ10にはソースファイル100、Javaコンパイラ102、クラス定義ファイル104、Java仮想マシン106、ライブラリ108及びCPU110が設けられている。
ソースファイル100はインタープリター型言語で記述されており、Javaコンパイラ102でバイトコードと呼ばれる中間言語に変換した後、クラス定義ファイル104によりクラスからオブジェクトを生成し、Java仮想マシン106でバイトコードをライブラリ108を参照しながらバイトコードをマシン語に翻訳しながら処理を実行する。
このようなJavaアプリケーション実行環境はサーバ側で実行するアプリケーションであることから、いわゆるサーバアプレットであり、サーバアプレットの表示部分を特化したJSP28を使用している。JSP28は基本的にウェブ画面の固定表示を行なうためタグ文であるが、ウェブ画面の動的な表示を行なうため拡張JSPタグ文が提供される。
一方、入力フィールドやボタン部品を動的に実現するためJSF30が提供されており、JSF30はJSPタグ文にJSFタグを階層的に記述して動的に部品をウェブ画面に実現している。
図2におけるサーバ10は、例えば図3のようなコンピュータのハードウェア資源により実現される。図3のコンピュータにおいて、CPU120のバス121にはRAM122、ハードディスクコントローラ(ソフト)124、フロッピィディスクドライバ(ソフト)130、CD−ROMドライバ(ソフト)134、マウスコントローラ138、キーボードコントローラ142、ディスプレイコントローラ146、通信用ボード150が接続される。
ハードディスクコントローラ124はハードディスクドライブ126を接続し、本発明の画面作成処理を実行するプログラムをローディングしており、コンピュータの起動時にハードディスクドライブ126から必要なプログラムを呼び出して、RAM122上に展開し、CPU120により実行する。
フロッピィディスクドライバ130にはフロッピィディスクドライブ(ハード)132が接続され、フロッピィディスク(R)に対する読み書きができる。CD−ROMドライバ134に対しては、CDドライブ(ハード)136が接続され、CDに記憶されたデータやプログラムを読み込むことができる。
マウスコントローラ138はマウス140の入力操作をCPU120に伝える。キーボードコントローラ142はキーボード144の入力操作をCPU120に伝える。ディスプレイコントローラ146は表示部148に対して表示を行う。通信用ボード150は無線を含む通信回線152を介して外部のインターネット上のクライアントとの間で通信を行う。
図4はコンテントを繰り返し表示させる部品を実現する本発明によるソース文を記述したJSPファイル、コンポーネントツリー及びウェブ画面の説明図である。図4(A)のJSPファイル34にあっては、コンテントの繰り返しを表示する部品を記述した部分36について、本発明にあっては、4行目に示すようにそのコンテントで実現するリテラル文字列<li>、</li>をJSP拡張タグを使用せずに直接記述するようにしている。
このようにJSPファイル34にJSP拡張タグを使用せずに直接記述したリテラル文字列を含むJSPファイル34のソース文を処理することで、図4(B)に示すようにJSPタグに使用したコンポーネント40、42、44及び48に加え、ソース文に直接記述したリテラル文字列46、50をそのままコンポーネントとして生成したコンポーネントツリー38を構築するようにしている。
即ち、標準的なJSFにあっては実線で示すJSP拡張タグに対応したコンポーネント40、42、44及び48のコンポーネントツリーのみが構築され、これではコンテントの繰り返しを表示する部品を実現することができないが、本発明にあってはソース文に直接記述したリテラル文字列46、50につきJSP拡張タグと同様に対応するコンポーネントを生成して、親となるコンポーネント44に点線のように設定したコンポーネントツリー38を構築している。
本発明により構築された図4(B)のコンポーネントツリー38の各コンポーネント、即ちオブジェクトを実行することによりHTML変換が行なわれ、これにより図4(C)のウェブ画面52に示すようにコンテントとして「値1」「値2」「値3」を繰り返し表示する部品を実現することができる。
次に本発明においてリテラル文字列をコンポーネントツリー38の構築に使用する仕組みを説明する。JSFの仕様ではコンポーネントツリー上のUIコンポーネントが保持している子コンポーネントリストは必ずUIコンポーネントリストでなければならない。そこでJSFの仕様を満足する子コンポーネントリストは別に本発明にあってはリテラル文字列を含む子コンポーネントリストとして拡張子コンポーネントリストを保持するしくみを採用している。
図5(A)はJSFの仕様を満足する標準コンポーネントリスト54であり、この標準コンポーネントリスト54は図4(B)のコンポーネントツリー38におけるコンテントを繰り返し表示する部品を実現するための部分36に対応したコンポーネント44を親コンポーネントとし、その子コンポーネントリスト56にはJSF拡張タグに対応したUIコンポーネント48を保持している。
このような図5(A)の標準コンポーネントリスト54に対し、本発明にあっては図5(B)の拡張コンポーネントリスト58に示すように、標準コンポーネントリスト54と同じ子コンポーネントリスト56に加え、さらに拡張子コンポーネントリスト60を設け、拡張子コンポーネントリスト60にはUIコンポーネント48に加えリテラル文字列46、50を保持するようにしている。
このような図5(B)の拡張子コンポーネントリスト60を作成するためには、図4(A)の4行目に示すように、子供となるJSP拡張タグ<uji:value/>で分断されたリテラル文字列<li>、</li>を取得し、リテラル文字列とJSP拡張タグの出現順序を保持する必要がある。
JSPの仕様によるとリテラル文字列は出力バッファに出力されることから、子供となるJSP拡張タグが出現したタイミングで次の処理を実行すれば、リテラル文字列を保持した拡張子コンポーネントリスト60を作成できる。
(1)出力バッファを読出しリテラル文字列として保存する。
(2)保存したリテラル文字列の次に出現するJSP拡張タグのUIコンポーネントを記録する。
図6(A)は図4(A)のJSPファイル34、3〜5行目のコンテントを繰り返し表示する部分を36のみを抜粋しており、この部分36を処理することで図6(B)に示すように標準コンポーネントリストの場合と同じUIコンポーネント48を保持した子コンポーネントリスト66に加え、UIコンポーネント48の前後にリテラル文字列46、50を保持した拡張子コンポーネントリスト68を作成することができる。
このようなリテラル文字列46、50保持した拡張子コンポーネントリスト68を作るための具体的な方法を検討する前に、図6(A)に抜粋したJSPファイル34の実行を説明すると、次の順番で処理が行なわれる。
(1)uji:listRendererのタグ開始処理でuji:listRendererのコンポーネントのオブジェクトが作成される。
(2)リテラル文字列<li>を出力バッファに出力する。
(3)uji:valueタグ開始処理
uji:valueのタグ開始処理の中でuji:valueコンポーネントのオブジェクトが生成され、uji:listRendererコンポーネントの子どもとして生成される。
(4)uji:valueタグ終了処理
(5)</li>を出力バッファに出力
(6)uji:listRendererのタグ終了処理
このような図6(A)に発生したJSPファイル34の実行を前提にリテラル文字列を保持した拡張子コンポーネントリストを作成する本発明の処理にあっては次の仕組みを作成する。
(1)タグの開始処理でコンポーネントを作成した直後にコンポーネントにタグの拡張子コンポーネント作成オブジェクトを設定する。
(2)子コンポーネントが親コンポーネントに追加されるタイミングで親コンポーネントが前記(1)で親タグに指示を出し、親タグが拡張子コンポーネント操作オブジェクトによる処理を実行する。
ここで拡張子コンポーネント操作オブジェクトは図7に示す変数と操作を持っている。図7において、拡張子コンポーネント操作オブジェクト70は変数として拡張子コンポーネントリスト72を持ち、ここにコンポーネントリスト格納部76を確保している。また操作として拡張子コンポーネント操作74を持ち、この拡張子コンポーネント操作74を受けるとメソッド78を実行して拡張子コンポーネントリストにリテラル文字列を格納する。
メソッド78は具体的には図6(A)の3行目の拡張タグ開始処理により呼び出され、そのとき出力バッファに出力されているリテラル文字列<li>を取得して拡張子コンポーネントリスト68に格納する。また図6(A)の5行目の拡張終了タグの処理により呼び出され、そのとき出力バッファに出力されているリテラル文字列</li>を取得して拡張子コンポーネントリスト68に格納する。
このような拡張タグの開始処理と終了処理のそれぞれが図7の拡張子コンポーネント操作オブジェクト70を読み出して出力バッファに出力されているリテラル文字列を拡張子コンポーネントリスト68に追加する処理は、JSFの仕様を変更せずに図7の拡張子コンポーネント操作オブジェクト70を生成するクラスオブジェクトを作成してクラス定義ファイルに事前登録することで実現できる。
またリテラル文字列を含むコンポーネントツリーの仕組みにより実現した部品のコンテントにより、既存のJSF用の部品を改造することなくそのまま使用することができる。
図8は本発明によるコンテントを繰り返し表示する部品のソース文を一般化して示したソースファイルの説明図である。図8(A)はコンテントを繰り返し表示させる部分を抜粋して一般化したソースファイル80であり、第1拡張開始タグと第1拡張終了タグで構成される第1拡張タグの中に、第1リテラル文字列、第2拡張開始タグと第2拡張終了タグで構成された第2拡張タグ及び第2リテラル文字列を記述している。ここで第1拡張タグはその中の2〜4行目に示すようにボディを持っているが、第2拡張タグはボディを持たない。
図8(B)は、図8(A)のソースファイル80をJSPソースファイル81として記号化しており、次の関係を持っている。
第1拡張開始タグ=タグA、
第1リテラル文字列hr、
第2拡張開始タグ=タグB、
第2拡張終了タグ=/タグB
第2リテラル文字列=br
第1拡張終了タグ=/タグA
ただし、<>は省略している。
図9は図8(B)のJSPソースファイル81の処理で構築されたコンポーネントツリー82であり、図9(B)はコンポーネントツリー82を構築するためのタグAのコンポーネントリスト92である。
タグAのコンポーネントツリー92はJSP標準の子コンポーネントリスト94にタグBのUIコンポーネント88を保持し、拡張子コンポーネントリスト96にタグBのUIコンポーネント88に加え、リテラル文字列86、90を保持している。
図10は図8(A)のソースファイル80からコンポーネントリストを作成するためのフローチャートである。図10の処理にあっては、ステップS1で第1拡張開始タグの処理を実行し、ステップS2で第2拡張開始タグの処理を実行し、ステップS3で第2拡張終了タグの処理を実行し、ステップS4で第1拡張終了タグの処理を実行する。
ステップS1、S2の開始タグの処理は図11のサブルーチンのフローチャートで実行される。図11の開始タグの処理を、図8(A)の第1拡張開始タグに対応する図8(B)のタグAについて説明すると次のようになる。
ステップS1でタグAに対応するコンポーネント84を取得する。次にステップS2でコンポーネント84の親コンポーネントを取得する。そしてステップS3で子コンポーネントリストにタグAのコンポーネント84を追加する。尚、ステップS2、S3における親コンポーネントは図8(B)のタグAの前に出現してすでに処理が済んでいる。
次にステップS4でタグAのコンポーネント84に拡張子コンポーネント操作オブジェクトが設定されているか否かチェックする。この場合にはオブジェクトの設定がないことからステップS5をスキップし、ステップS6でタグAがボディを持つか否かチェックする。
タグAは図8(B)の2〜4行目のボディを持つことからステップS7に進み、コンポーネント84のタグAに拡張子コンポーネント操作オブジェクトを設定して、図10にリターンする。このようにして図10ステップS1の第1拡張開始タグの処理が終了するとステップS2で第2拡張開始タグの処理が行なわれる。
この第2拡張開始タグは図8(B)の3行目の<タグB>の処理となる。そこで図11を参照して、開始タグBの処理を説明すると次のようになる。ステップS1でタグAに対応するコンポーネント88を取得し、ステップS2でコンポーネント88の親コンポーネント84を取得し、ステップS3で親コンポーネント84の子コンポーネントリスト94及び拡張子コンポーネントリスト96のそれぞれにコンポーネント88を追加する。
次にステップS4でコンポーネント84のタグAに拡張子コンポーネント操作オブジェクトが設定されているか否かチェックする。この場合には前回の開始タグAの処理で拡張子コンポーネント操作オブジェクトが設定されていることから、ステップS5に進み、タグオブジェクトのリテラル文字列取得処理を実行する。
ステップS5のリテラル文字取得処理は図12のサブルーチンのフローチャートで実行される。図12にあっては、ステップS1でそのときバッファに出力されているリテラル文字列を取得し、ステップS2で取得したリテラル文字列を拡張子コンポーネントリスト96にリテラル文字列86として追加して、図11にリターンする。
続いて図11のステップS6でタグBがボディを持つか否かチェックする。図8(B)の3行目のようにタグBはボディを持たないことから、ステップS7のコンポーネント88のタグBに対する拡張子コンポーネント操作オブジェクトの設定はスキップして図10のメインルーチンにリターンする。
図10にあっては、続いてステップS3の第2拡張終了タグとなる図8(B)の</タグB>の処理を行なう。このタグ終了処理は図13のサブルーチンのフローチャートで実行される。図13において終了タグ処理はステップS1でタグBがボディを持つか否かチェックし、タグBはボディを持たないことからステップS2のリテラル文字列取得処理はスキップして図10にリターンする。
続いて図10のステップS4の第1拡張終了タグの処理として図8(B)の2行目の<タグA>の処理が行なわれる。この終了処理についても図13のサブルーチンのフローチャートが実行され、ステップS1でタグAはボディを持つか否かチェックし、タグAはボディを持っていることからステップS2のリテラル文字列取得処理を実行する。
リテラル文字列取得は図12のサブルーチンのフローチャートを実行する。即ち図12のステップS1でそのとき出力バッファに出力されているリテラル文字列<br>を取得し、ステップS2で拡張子コンポーネントリスト96にリテラル文字列90として図10のメインルーチンにリターンし、一連の処理を終了する。
ここで、本発明にあってはJSFの仕様を変更せずにリテラル文字列を格納した拡張子コンポーネントリストを作成する処理を構築しているが、もし仕様を変更しても良い場合には次の方法を使用することができる。
(方法1)
図9(A)のコンポネントツリーを例にとると、タグAに対する子タグBの処理が始まった時点で出力バッファを読み取だしてリテラル文字列hrをコンポーネントとして拡張子コンポーネントリストに保持し、リテラル文字列hrの次に出現するタグBのコンポーネントを拡張子コンポーネントリストに保存する。
この方法にあっては子タグBが拡張子コンポーネントリストを作成する処理を実行するため既存のJSPタグと子タグBとして使う場合にはリテラル文字列を取得してリストに追加する処理と次に出現する子タグBのコンポーネントを追加する改造が必要となる。
(方法2)
子タグBの処理が始まった時点で子タグ出現の合図を親タグAに通知し、この合図を受けて親タグAがリテラル文字列を取得して拡張子コンポーネントリストに追加し、次に出現する子タグBのコンポーネントを追加する処理を実行する。
この方法にあってはリテラル文字列の取得機能の実装は新たに提供するタグである親タグAに限定できるが、子タグBはタグの処理が始まった時点で親タグに合図を送る仕組みを実装している必要があり、既存のJSFのタグをこのような子タグとして使用できないため子タグの改造を必要とする。
また本発明はサーバのコンピュータにより実行されるウェブ画面の作成処理プログラムを提供するものであり、図10〜図13のフローチャートに示した処理手順を備えている。
尚、本発明は上記の実施形態に限定されず、その目的と利点を損なうことのない適宜の変形を含む。また本発明は上記の実施形態に示した数値による限定は受けない。
ここで本発明の特徴をまとめて列挙すると次の付記のようになる。
(付記)
(付記1)
コンテントをウェブ画面に固定表示する標準タグに対し設けられたコンテントをウェブ画面に動的に表示する拡張タグを使用して、部品をウェブ画面に動的に表示する拡張タグ文を記述したソース文を作成し、前記ソース文の拡張タグ文に基づいて構築されたコンポーネントツリーを実行することにより、HTMLを出力してブラウザのウェブ画面に前記部品を表示させるサーバのウェブ画面作成方法に於いて、
コンテントをウェブ画面に繰り返し表示する部品を表示するソース文に拡張タグを使用せずにリテラル文字列を直接記述するソース文記述ステップと、
前記ソース文の実行により前記リテラル文字列を含むコンポーネントツリーを構築するツリー構築ステップと、
前記コンポーネントツリーの各コンポーネントの実行によりHTMLを出力してブラウザのウェブ画面に前記コンテントを繰り返し表示した部品を表示させるHTML出力ステップと、
を備えたことを特徴とするウェブ画面作成方法。(1)
(付記2)
付記1記載のウェブ画面作成方法に於いて、
ソース文記述ステップは、コンテントをウェブ画面に繰り返し表示する部品を表示させるソース文として、
コンテントの描画形式を指定する第1拡張開始タグと第1拡張終了タグを備えた第1拡張タグ文と、
前記第1拡張タグ文のボディに記述された前記コンテントの出力開始位置を指定する第1リテラル文字列、前記コンテントの繰り返し値を示す第2拡張開始タグと第2拡張終了を備えたボディを持たない第2拡張タグ文、及び前記コンテントの出力終了位置を指定する第2リテラル文字列と、
を記述し、
前記ツリー構築ステップは、
前記第1拡張開始タグに対応する第1コンポーネントを取得して先行する親コンポーネントの子コンポーネントリストに追加し、
前記第1拡張タグがボディを持つことを判別して前記第1コンポーネントに拡張子コンポーネント操作オブジェクトを設定し、
前記第2拡張開始タグに対応する第2コンポーネントを取得して前記第1コンポーネントの子コンポーネントリスト及び拡張子コンポーネントリストに追加し、
前記第1コンポーネントに前記拡張子コンポーネント操作オブジェクトが設定されていることを判別して、前記第1リテラル文字列を前記拡張子コンポーネントリストの第1コンポーネントの前に位置するように追加し、
前記第2拡張終了タグ文がボディを持たないことを判別して前記第2拡張終了タグの処理を終了し、
次に前記第1拡張タグがボディを持つことを判別して前記第2リテラル文字列を取得して前記拡張子コンポーネントリストに追加する、
ことを特徴とするウェブ画面作成方法。(2)
(付記3)
付記2記載のウェブ画面作成方法に於いて、
前記ツリー構築ステップは、
変数として拡張子コンポーネントリストを備え、操作として前記拡張子コンポーネントリストにリテラル文字列を格納するメソッドを備えたクラスを事前登録し、
前記第1拡張開始タグを処理した際に、前記第1拡張開始タグに対応して取得した第1コンポーネントを親コンポーネントとする値を前記クラスに代入して前記拡張子コンポーネント操作オブジェクトを生成することを特徴とするウェブ画面作成方法。(3)
(付記4)
付記3記載のウェブ画面作成方法に於いて、
前記拡張子コンポーネント操作オブジェクトのメソッドは、
前記第2拡張開始タグの処理により呼出され、そのとき出力バッファに出力されている前記第1リテラル文字列を取得して前記拡張子コンポーネントリストに格納すると共に、前記第1拡張終了タグの処理により呼出され、そのとき出力バッファに出力されている前記第2リテラル文字列を取得して前記拡張子コンポーネントリストに格納することを特徴とするウェブ画面作成方法。
(付記5)
付記1乃至4のいずれかに記載のウェブ画面作成方法に於いて、コンテントをウェブ画面に固定表示する標準タグはJavaServer Pages(JSP)により提供され、部品をウェブ画面に動的に表示する拡張タグはJavaServer Facesにより提供されることを特徴とするウェブ画面作成方法。
(付記6)
コンテントをウェブ画面に固定表示する標準タグに対し設けられたコンテントをウェブ画面に動的に表示する拡張タグを使用して、部品をウェブ画面に動的に表示する拡張タグ文を記述したソース文を作成し、前記ソース文の拡張タグ文に基づいて構築されたコンポーネントツリーを実行することにより、HTMLを出力してブラウザのウェブ画面に前記部品を表示させるサーバのコンピュータに、
コンテントをウェブ画面に繰り返し表示する部品を表示するソース文に拡張タグを使用せずにリテラル文字列を直接記述するソース文記述ステップと、
前記ソース文の実行により前記リテラル文字列を含むコンポーネントツリーを構築するツリー構築ステップと、
前記コンポーネントツリーの各コンポーネントの実行によりHTMLを出力してブラウザのウェブ画面に前記コンテントを繰り返し表示した部品を表示させるHTML出力ステップと、
を実行させることを特徴とするウェブ画面作成プログラム。(4)
(付記7)
付記6記載のウェブ画面作成プログラムに於いて、
ソース文記述ステップは、コンテントをウェブ画面に繰り返し表示する部品を表示させるソース文として、
コンテントの描画形式を指定する第1拡張開始タグと第1拡張終了タグを備えた第1拡張タグ文と、
前記第1拡張タグ文のボディに記述された前記コンテントの出力開始位置を指定する第1リテラル文字列、前記コンテントの繰り返し値を示す第2拡張開始タグと第2拡張終了タグを備えたボディを持たない第2拡張タグ文、及び前記コンテントの出力終了位置を指定する第2リテラル文字列と、
を記述し、
前記ツリー構築ステップは、
前記第1拡張開始タグに対応する第1コンポーネントを取得して先行する親コンポーネントの子コンポーネントリストに追加し、
前記第1拡張タグ文がボディを持つことを判別して前記第1コンポーネントに拡張子コンポーネント操作オブジェクトを設定し、
次に前記第2拡張開始タグに対応する第2コンポーネントを取得して前記第1コンポーネントの子コンポーネントリスト及び拡張子コンポーネントリストに追加し、
前記第1コンポーネントに前記拡張子コンポーネント操作オブジェクトが設定されていることを判別して、前記第1リテラル文字列を前記拡張子コンポーネントリストの第1コンポーネントの前に位置するように追加し、
前記第2拡張終了タグがボディを持たないことを判別して前記第2拡張終了タグの処理を終了し、
前記第1拡張タグ文がボディを持つことを判別して前記第2リテラル文字列を取得して前記拡張子コンポーネントリストに追加する、
ことを特徴とするウェブ画面作成プログラム。
(付記8)
付記7記載のウェブ画面作成プログラムに於いて、
前記ツリー構築ステップは、
変数として拡張子コンポーネントリストとを備え、操作として前記拡張子コンポーネントリストにリテラル文字列を格納するメソッドを備えたクラスを事前登録し、
前記第1拡張開始タグを処理した際に、前記第1拡張開始タグに対応して取得した第1コンポーネントを親コンポーネントとする値を前記クラスに代入して前記拡張子コンポーネント操作オブジェクトを生成することを特徴とするウェブ画面作成プログラム。
(付記9)
付記8記載のウェブ画面作成プログラムに於いて、
前記拡張子コンポーネント操作オブジェクトのメソッドは、
前記第2拡張開始タグの処理により呼出され、そのとき出力バッファに出力されている前記第1リテラル文字列を取得して前記拡張子コンポーネントリストに格納すると共に、前記第1拡張終了タグの処理により呼出され、そのとき出力バッファに出力されている前記第2リテラル文字列を取得して前記拡張子コンポーネントリストに格納することを特徴とするウェブ画面作成プログラム。
(付記10)
付記6乃至9のいずれかに記載のウェブ画面作成プログラムに於いて、コンテントをウェブ画面に固定表示する標準タグはJavaServer Pages(JSP)により提供され、部品をウェブ画面に動的に表示する拡張タグはJavaServer Facesにより提供されることを特徴とするウェブ画面作成プログラム。
(付記11)
コンテントをウェブ画面に固定表示する標準タグに対し設けられたコンテントをウェブ画面に動的に表示する拡張タグを使用して、部品をウェブ画面に動的に表示する拡張タグ文を記述したソース文を作成し、前記ソース文の拡張タグ文に基づいて構築されたコンポーネントツリーを実行することにより、HTMLを出力してブラウザのウェブ画面に前記部品を表示させるサーバに於いて、
コンテントをウェブ画面に繰り返し表示する部品を表示するソース文に拡張タグを使用せずにリテラル文字列を直接記述するソース文記述部と、
前記ソース文の実行により前記リテラル文字列を含むコンポーネントツリーを構築するツリー構築部と、
前記コンポーネントツリーの各コンポーネントの実行によりHTMLを出力してブラウザのウェブ画面に前記コンテントを繰り返し表示した部品を表示させるHTML出力部と、
を実行させることを特徴とするサーバ。(5)
(付記12)
付記11記載のサーバに於いて、
ソース文記述部は、コンテントをウェブ画面に繰り返し表示する部品を表示させるソース文として、
コンテントの描画形式を指定する第1拡張開始タグと第1拡張終了タグを備えた第1拡張タグ文と、
前記第1拡張タグ文のボディに記述された前記コンテントの出力開始位置を指定する第1リテラル文字列、前記コンテントの繰り返し値を示す第2拡張開始タグと第2拡張終了タグを備えたボディを持たない第2拡張タグ文、及び前記コンテントの出力終了位置を指定する第2リテラル文字列と、
を記述し、
前記ツリー構築部は、
前記第1拡張開始タグに対応する第1コンポーネントを取得して先行する親コンポーネントの子コンポーネントリストに追加し、
前記第1拡張タグ文がボディを持つことを判別して前記第1コンポーネントに拡張子コンポーネント操作オブジェクトを設定し、
前記第2拡張開始タグに対応する第2コンポーネントを取得して前記第1コンポーネントの子コンポーネントリスト及び拡張子コンポーネントリストに追加し、
前記第1コンポーネントに前記拡張子コンポーネント操作オブジェクトが設定されていることを判別して、前記第1リテラル文字列を前記拡張子コンポーネントリストの第1コンポーネントの前に位置するように追加し、
前記第2拡張了タグ文がボディを持たないことを判別して前記第2拡張終了タグの処理を終了し、
前記第1拡張タグ文がボディを持つことを判別して前記第2リテラル文字列を取得して前記拡張子コンポーネントリストに追加する、
ことを特徴とするサーバ。
(付記13)
付記12記載のサーバに於いて、
前記ツリー構築部は、
変数として拡張子コンポーネントリストとを備え、操作として前記拡張子コンポーネントリストにリテラル文字列を格納するメソッドを備えたクラスを事前登録し、
前記第1拡張開始タグを処理した際に、前記第1拡張開始タグに対応して取得した第1コンポーネントを親コンポーネントとする値を前記クラスに代入して前記拡張子コンポーネント操作オブジェクトを生成することを特徴とするサーバ。
(付記14)
付記13記載のサーバに於いて、
前記拡張子コンポーネント操作オブジェクトのメソッドは、
前記第2拡張開始タグの処理により呼出され、そのとき出力バッファに出力されている前記第1リテラル文字列を取得して前記拡張子コンポーネントリストに格納すると共に、前記第1拡張終了タグの処理により呼出され、そのとき出力バッファに出力されている前記第2リテラル文字列を取得して前記拡張子コンポーネントリストに格納することを特徴とするサーバ。
(付記15)
付記11乃至14のいずれかに記載のサーバに於いて、コンテントをウェブ画面に固定表示する標準タグはJavaServer Pages(JSP)により提供され、部品をウェブ画面に動的に表示する拡張タグはJavaServer Facesにより提供されることを特徴とするサーバ。
本発明が適用されるサーバを備えたネットワーク環境の説明図 本発明のウェブ画面作成処理を実行するサーバのアプリケーション実行機能のブロック図 図2のサーバが適用されるコンピュータのハードウェア環境のブロック図 コンテントを繰り返し表示させる部品を実現する本発明によるソース文を記述したJSPファイル、コンポーネントツリー及びウェブ画面の説明図 リテラル文字列をコンポーネントに含むコンポーネントツリーの構築に必要なコンポーネントリストの説明図 コンテントを繰り返し表示させる部分のソース文と作成されたコンポーネントリストの説明図 リテラル文字列をコンポーネントリストに追加するための仕組みを実現する本発明で新たに設けた拡張子コンポーネント操作オブジェクトの説明図 本発明によるコンテントを繰り返し表示させる部品のソース文を一般化して示したソースファイルの説明図 図8のソースファイルから生成したコンポーネントツリーとコンポーネントリストの説明図 図8のソースファイルからコンポーネントリストを作成する処理のフローチャート 図10の開始タグ処理のフローチャート 図10のリテラル文字取得処理のフローチャート 図10の終了タグ処理のフローチャート 従来のJSPの拡張タグ文による動的なウェブ画面の表示処理の説明図 従来のJSFによるソース文からコンポーネントツリーを構築して動的に部品画面を作成する処理の説明図 従来のJSFによるコンポーネントツリーの作成と、その後のHTML出力による表示画面の説明図 コンテントを繰り返し表示させる部品にリテラル文字を含む描画不能なJSPファイルとそこから生成したコンポーネントツリーの説明図 リテラル文字をJSP拡張タグによる書き直しでリテラル文字を含むコンポーネントツリーを構築してコンテントを繰り返し表示させる部品を作成する従来処理の説明図
符号の説明
10:サーバ
12:インターネット
14−1〜14−3:クライアント
16−1〜16−3:ブラウザ
18:通信制御部
20:画面作成部
22:ソース文記述部
24:ツリー構築部
26:HTML出力部
34:JSPファイル
36:繰り返される部分
38、82:コンポーネントツリー
40、42、44、48、84、88:コンポーネント
46、50、86、90:リテラル文字列
52:ウェブ画面
54:標準コンポーネントリスト
56、66、94:子コンポーネントリスト
58、64、92:拡張コンポーネントリスト
60、68、72、96:拡張子コンポーネントリスト
70:拡張子コンポーネント操作オブジェクト
74:拡張子コンポーネント操作
76:コンポーネントリスト格納部
78:メソッド
80:ソースファイル

Claims (3)

  1. コンピュータで構成したサーバが、コンテントをウェブ画面に固定表示する標準タグに対し設けられたコンテントをウェブ画面に動的に表示する拡張タグを使用して、部品をウェブ画面に動的に表示する拡張タグ文を記述したソース文を作成し、前記ソース文の拡張タグ文に基づいて構築されたコンポーネントツリーを実行することにより、HTMLを出力してブラウザのウェブ画面に前記部品を表示させるサーバのウェブ画面作成方法であって、
    コンテントをウェブ画面に繰り返し表示する部品を表示するためのリテラル文字列が直接記述されたソース文を実行するソース文実行ステップと、
    前記ソース文実行ステップによってソース文が実行された結果を受けて、コンテントを繰り返し表示する部品を実現するためのコンポーネントを親コンポーネントとしてその子コンポーネントにはJSF拡張タグに対応したUIコンポーネントが記述された前記リテラル文字列を含むコンポーネントツリーを構築するツリー構築ステップと、
    前記コンポーネントツリーにおける各コンポーネントの実行によりHTMLを出力してブラウザのウェブ画面に前記コンテントを繰り返し表示した部品を表示させるHTML出力ステップと、
    をコンピュータで構成したサーバが実行し、
    ソース文実行ステップは、コンテントをウェブ画面に繰り返し表示する部品を表示させるために、
    コンテントの描画形式を指定する第1拡張開始タグと第1拡張終了タグを備えた第1拡張タグ文と、
    前記第1拡張タグ文のボディに記述された前記第1開始タグ直後の第1リテラル文字列
    前記コンテントの繰り返し値を示す第2拡張開始タグと第2拡張終了タグを備えたボディを持たない第2拡張タグ文と、
    記コンテントの出力終了位置を指定する前記第1拡張終了タグ直前の第2リテラル文字列と、
    が記述されたソース文を前記コンピュータで構成されたサーバが実行し、
    前記ツリー構築ステップは、
    前記第1拡張開始タグに対応する第1コンポーネントを取得して先行する親コンポーネントの子コンポーネントリストに追加する処
    前記第1拡張タグ文がボディを持つことを判別して前記第1コンポーネントに拡張子コンポーネント操作オブジェクトを設定する処
    前記第2拡張開始タグに対応する第2コンポーネントを取得して前記第1コンポーネントの子コンポーネントリスト及び拡張子コンポーネントリストに追加する処
    前記第1コンポーネントに前記拡張子コンポーネント操作オブジェクトが設定されていることを判別して、前記第1リテラル文字列を前記拡張子コンポーネントリストの第コンポーネントの前に位置するように追加する処
    前記第2拡張タグ文がボディを持たないことを判別したとき前記第2拡張終了タグは最初から何もしない終了処理
    次に前記第1拡張タグ文がボディを持つことを判別して前記第2リテラル文字列を取得して前記拡張子コンポーネントリストへの追加処理
    を前記コンピュータで構成したサーバが実行し、
    前記コンピュータで構成されたサーバが拡張子コンポーネントによって呼び出されるメソッド操作を行い、そのメソッド操作によってリテラル文字列を取得して拡張子コンポーネントリストに格納して使用する処理を実行することを特徴とするウェブ画面作成方法。
  2. コンピュータで構成したサーバが、コンテントをウェブ画面に固定表示する標準タグに対し設けられたコンテントをウェブ画面に動的に表示する拡張タグを使用して、部品をウェブ画面に動的に表示する拡張タグ文を記述したソース文を作成し、前記ソース文の拡張タグ文に基づいて構築されたコンポーネントツリーを実行することにより、HTMLを出力してブラウザのウェブ画面に前記部品を表示させるサーバのウェブ画面作成プログラムであって、
    コンテントをウェブ画面に繰り返し表示する部品を表示するためのリテラル文字列が直接記述されたソース文を実行するソース文実行ステップと、
    前記ソース文実行ステップによってソース文が実行された結果を受けて、コンテントを繰り返し表示する部品を実現するためのコンポーネントを親コンポーネントとしてその子コンポーネントにはJSF拡張タグに対応したUIコンポーネントが記述された前記リテラル文字列を含むコンポーネントツリーを構築するツリー構築ステップと、
    前記コンポーネントツリーにおける各コンポーネントの実行によりHTMLを出力してブラウザのウェブ画面に前記コンテントを繰り返し表示した部品を表示させるHTML出力ステップと、
    コンピュータで構成したサーバに実行させ、
    ソース文実行ステップは、コンテントをウェブ画面に繰り返し表示する部品を表示させるために、
    コンテントの描画形式を指定する第1拡張開始タグと第1拡張終了タグを備えた第1拡張タグ文と、
    前記第1拡張タグ文のボディに記述された前記第1開始タグ直後の第1リテラル文字列と、
    前記コンテントの繰り返し値を示す第2拡張開始タグと第2拡張終了タグを備えたボディを持たない第2拡張タグ文と、
    記コンテントの出力終了位置を指定する前記第1拡張終了タグ直前の第2リテラル文字列と、
    が記述されたソース文を前記コンピュータで構成されたサーバが実行し、
    前記ツリー構築ステップは、
    前記第1拡張開始タグに対応する第1コンポーネントを取得して先行する親コンポーネントの子コンポーネントリストに追加する処
    前記第1拡張タグ文がボディを持つことを判別して前記第1コンポーネントに拡張子コンポーネント操作オブジェクトを設定する処
    前記第2拡張開始タグに対応する第2コンポーネントを取得して前記第1コンポーネントの子コンポーネントリスト及び拡張子コンポーネントリストに追加する処
    前記第1コンポーネントに前記拡張子コンポーネント操作オブジェクトが設定されていることを判別して、前記第1リテラル文字列を前記拡張子コンポーネントリストの第コンポーネントの前に位置するように追加する処
    前記第2拡張タグ文がボディを持たないことを判別したとき前記第2拡張終了タグは最初から何もしない終了処理
    次に前記第1拡張タグ文がボディを持つことを判別して前記第2リテラル文字列を取得して前記拡張子コンポーネントリストへの追加処理、
    前記コンピュータで構成したサーバに実行させ、
    前記コンピュータで構成したサーバが拡張子コンポーネントによって呼び出されるメソッド操作を行い、そのメソッド操作によってリテラル文字列を取得して拡張子コンポーネントリストに格納して使用する処理を実行させることを特徴とするウェブ画面作成プログラム。
  3. コンテントをウェブ画面に固定表示する標準タグに対し設けられたコンテントをウェブ画面に動的に表示する拡張タグを使用して、部品をウェブ画面に動的に表示する拡張タグ文を記述したソース文を作成し、前記ソース文の拡張タグ文に基づいて構築されたコンポーネントツリーを実行することにより、HTMLを出力してブラウザのウェブ画面に前記部品を表示させるコンピュータで構成したサーバ
    コンテントをウェブ画面に繰り返し表示する部品を表示するためのリテラル文字列が直接記述されたソース文の実行、
    前記ソース文が実行された結果を受けてコンテントを繰り返し表示する部品を実現するためのコンポーネントを親コンポーネントとしてその子コンポーネントにはJSF拡張タグに対応したUIコンポーネントが記述された前記リテラル文字列を含むコンポーネントツリーの構築、
    前記コンポーネントツリーにおける各コンポーネントの実行によりHTMLを出力してブラウザのウェブ画面に前記コンテントを繰り返し表示した部品を表示させるHTML出
    前記コンピュータで構成したサーバが行い、
    前記ソース文の実行は、コンテントをウェブ画面に繰り返し表示する部品を表示させるために、
    コンテントの描画形式を指定する第1拡張開始タグと第1拡張終了タグを備えた第1拡張タグ文と、
    前記第1拡張タグ文のボディに記述された前記第1開始タグ直後の第1リテラル文字列
    前記コンテントの繰り返し値を示す第2拡張開始タグと第2拡張終了タグを備えたボディを持たない第2拡張タグ文
    前記コンテントの出力終了位置を指定する前記第1拡張終了タグ直前の第2リテラル文字列と、
    が記述されたソース文を前記コンピュータで構成されたサーバが実行し、
    前記ツリーの構築は、
    前記第1拡張開始タグに対応する第1コンポーネントを取得して先行する親コンポーネントの子コンポーネントリストに追加する処理、
    前記第1拡張タグ文がボディを持つことを判別して前記第1コンポーネントに拡張子コンポーネント操作オブジェクトを設定する処理、
    前記第2拡張開始タグに対応する第2コンポーネントを取得して前記第1コンポーネントの子コンポーネントリスト及び拡張子コンポーネントリストに追加する処理、
    前記第1コンポーネントに前記拡張子コンポーネント操作オブジェクトが設定されていることを判別して、前記第1リテラル文字列を前記拡張子コンポーネントリストの第コンポーネントの前に位置するように追加する処理、
    前記第2拡張タグ文がボディを持たないことを判別したときて前記第2拡張終了タグは最初から何もしない終了の処理、
    次に前記第1拡張タグ文がボディを持つことを判別して前記第2リテラル文字列を取得して前記拡張子コンポーネントリストへの追加処理
    を前記コンピュータで構成したサーバが実行し、
    前記コンピュータで構成されたサーバが拡張子コンポーネントによって呼び出されるメソッド操作を行い、そのメソッド操作によってリテラル文字列を取得して拡張子コンポーネントリストに格納して使用する処理を実行することを特徴とするコンピュータで構成されたサーバ。
JP2004341599A 2004-11-26 2004-11-26 ウェブ画面作成方法、プログラム及びサーバ Expired - Fee Related JP4553246B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004341599A JP4553246B2 (ja) 2004-11-26 2004-11-26 ウェブ画面作成方法、プログラム及びサーバ
US11/068,156 US7325189B2 (en) 2004-11-26 2005-02-28 Web screen creation method, program and server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004341599A JP4553246B2 (ja) 2004-11-26 2004-11-26 ウェブ画面作成方法、プログラム及びサーバ

Publications (2)

Publication Number Publication Date
JP2006154993A JP2006154993A (ja) 2006-06-15
JP4553246B2 true JP4553246B2 (ja) 2010-09-29

Family

ID=36568562

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004341599A Expired - Fee Related JP4553246B2 (ja) 2004-11-26 2004-11-26 ウェブ画面作成方法、プログラム及びサーバ

Country Status (2)

Country Link
US (1) US7325189B2 (ja)
JP (1) JP4553246B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7634721B1 (en) * 2004-08-23 2009-12-15 Sun Microsystems Inc. Composite component architecture using javaserver pages (JSP) tags
WO2007030192A2 (en) * 2005-09-08 2007-03-15 Medhand International Inc. Method for rendering information on a display
JP4649301B2 (ja) * 2005-09-15 2011-03-09 株式会社東芝 通信方法及びサーバ装置
US9779176B2 (en) * 2008-04-02 2017-10-03 International Business Machines Corporation Accessing external functionality within a component-based web application
US8504929B2 (en) * 2008-04-11 2013-08-06 Oracle International Corporation Editing user interface components
US9450783B2 (en) * 2009-05-28 2016-09-20 Red Hat, Inc. Abstracting cloud management
US8875094B2 (en) * 2011-09-14 2014-10-28 Oracle International Corporation System and method for implementing intelligent java server faces (JSF) composite component generation
CN109299422A (zh) * 2018-09-20 2019-02-01 江苏满运软件科技有限公司 可视化网页编辑方法、系统、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002297568A (ja) * 2001-03-29 2002-10-11 Fujitsu Ltd 構造化文書符号化装置及び記録媒体

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2879099B1 (ja) * 1998-02-26 1999-04-05 工業技術院長 抽象構文木処理方法、抽象構文木処理プログラムを記録したコンピュータ読み取り可能な記録媒体、抽象構文木データを記録したコンピュータ読み取り可能な記録媒体、及び、抽象構文木処理装置
US6961929B1 (en) * 1999-06-25 2005-11-01 Sun Microsystems, Inc. Mechanism for automatic synchronization of scripting variables
US7165243B1 (en) 1999-06-25 2007-01-16 Sun Microsystems, Inc. Multi-lingual tag extension mechanism
JP3862470B2 (ja) * 2000-03-31 2006-12-27 キヤノン株式会社 データ処理装置及び方法、ブラウザシステム、ブラウザ装置、記録媒体
US20040090458A1 (en) * 2002-11-12 2004-05-13 Yu John Chung Wah Method and apparatus for previewing GUI design and providing screen-to-source association
EP2538352A3 (en) * 2003-07-11 2013-03-06 Google, Inc. System and method for providing Java server page security

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002297568A (ja) * 2001-03-29 2002-10-11 Fujitsu Ltd 構造化文書符号化装置及び記録媒体

Also Published As

Publication number Publication date
US20060117248A1 (en) 2006-06-01
JP2006154993A (ja) 2006-06-15
US7325189B2 (en) 2008-01-29

Similar Documents

Publication Publication Date Title
RU2390834C2 (ru) Способ и устройство для просмотра и взаимодействия с электронной таблицей из веб-браузера
US20170169001A1 (en) Combining server-side and client-side user interface elements
JP5140997B2 (ja) プログラム、文字入力編集方法及び装置
CN112416339A (zh) 页面开发方法、装置、计算机设备
US8982132B2 (en) Value templates in animation timelines
EP1610230A2 (en) A method of annotating, retrieving and rendering a markup language document with digital ink annotations
US7325189B2 (en) Web screen creation method, program and server
US9535667B2 (en) Content collapse outside of selection
US20080120596A1 (en) Cross domain presence of web user interface and logic
WO2009098739A1 (ja) プログラム最適化装置およびプログラム最適化方法
US20130127877A1 (en) Parameterizing Animation Timelines
US20080155406A1 (en) Gui generation apparatus and method for generating gui
JP2004030582A (ja) 構造化文書編集装置、構造化文書編集方法及びプログラム
JP2014523567A (ja) 統合開発環境におけるライブ・ブラウザー・ツーリング
CN110955850A (zh) 一种组件化树形控件的处理方法
CN112269576A (zh) 一种组件展示方法、装置、服务器和存储介质
US9535692B2 (en) Systems and methods for managing related files in a software development environment
US20110035433A1 (en) Webpage display method, computer system, and program
CN113196275A (zh) 经由计算机网络的基于网络的协作墨迹书写
US8250527B1 (en) System and method for maintaining a sticky association of optimization settings defined for an image referenced in software code of an application being authored
US10706215B2 (en) Producing formula representations of mathematical text
JP3788956B2 (ja) 構造化文書表示方法、構造化文書表示装置及びプログラム
JP7260150B2 (ja) Webサイト設計支援装置、Webサイト設計支援方法、及びプログラム
RU2651161C1 (ru) Способ подготовки документов на языках разметки при реализации пользовательского интерфейса для работы с данными информационной системы
Qiu showtext: Using System Fonts in R Graphics.

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090331

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090601

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100215

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100615

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100708

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130723

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees