index.jsp
<%@ page contentType="text/html; charset=euc-jp" %>
<%
// Declare the fields we will use in subsequent scriptlet code.
String appChecked;
String appTarget;
String commentChecked;
String commentTarget;
String sourceChecked;
String sourceTarget;
// Handle the application window controls.
if ( request.getParameter( "appCheckBox" ) == null ) {
appTarget = "";
appChecked = "";
} else {
appTarget = "target=\"appWindow\"";
appChecked = "checked";
}
// Handle the usage and comment window controls.
if ( request.getParameter( "commentCheckBox" ) == null ) {
commentTarget = "";
commentChecked = "";
} else {
commentTarget = "target=\"commentWindow\"";
commentChecked = "checked";
}
// Handle the source window controls.
if ( request.getParameter( "sourceCheckBox" ) == null ) {
sourceTarget = "";
sourceChecked = "";
} else {
sourceTarget = "target=\"sourceWindow\"";
sourceChecked = "checked";
}
%>
<html>
<head>
<title>Allaire 請求書サンプル アプリケーション</title>
</head>
<body bgcolor="white">
<center>
<a href="http://www.allaire.com/products/jrun/">
<img src="jrunlogo.gif" width="200" height="104"
alt="Allaire JRun" border="2">
</a>
</center>
<br>
<center>
<table width=80% cellspacing=2 cellpadding=3>
<tr bgcolor="#8FBC8F">
<td align="center">
<font face="arial"><a href="/demo/index.html">JRun デモとサンプル ページ</a> : Allaire の請求書サンプル アプリケーション</font>
</td>
</tr>
<tr bgcolor="#FFFFFF"><td> </td></tr>
<tr bgcolor="#FAFAD2">
<td>
<font face="arial" size=-1>
<h2>JRun の請求書サンプル アプリケーションへようこそ!</h2>
<ul>
この Web アプリケーションでは、クライアントの会社に送付する請求書を作成するためのアプリケーションの例を紹介します。このアプリケーションでは、FAX 送付状の作成と、請求書の生成の 2 つの操作が実行されます。様々な JSP のコーディング技術を紹介するために、請求書の生成には 3 つのバージョンがあります。
</ul>
</font>
</td>
</tr>
<tr bgcolor="#FFFFFF"><td> </td></tr>
<tr bgcolor="#FAFAD2">
<td>
<font face="arial">
<a href="/invoice/coverSheet.jsp">FAX 送付状ジェネレータ</a>
<ul>
<font size=-1>
FAX 送付状ジェネレータではシンプルなフォームが紹介されます。
フォームに入力し、[送付状の生成] ボタンを使用してそのフォームを送信します。結果のページを印刷し、FAX の送付状として使用できます。
<p>
この操作では、シンプルなフォームと JRun サーバーからのテンプレートが提供されます。JSP の宣言、スクリプトレット、表現が紹介されます。
<p>
<a href="sources/coverSheet_jsp.html" <%= sourceTarget %>>
呼び出し元
</a>
<ul>
呼び出し元のページは、アプリケーションが前回使用されたときの
値をフォームに残した JSP ページです。
はじめは、空の文字列が使用されます。入力されたフォームの要素
は、セッション スコープの一部として保存されます。
</ul>
<p>
<a href="sources/generateCoverSheet_jsp.html" <%= sourceTarget %>>
ジェネレータ
</a>
<ul>
生成ページでは、スクリプトレットを使用して、呼び出し元ページに入 力されたパラメータを抽出します。ヘッダが作成された後、
PSG のテンプレートと整然とフォーマットされた表内のパラメータ
値が解析されます。
値は、インライン スクリプトレット内で宣言され、初期化された
変数を使用した JSP 表現として渡されます。
<p>
標準情報の表に続いてオプションのメッセージが追加されます。
このオプションのメッセージは、スクリプトレットによって処理
されます。この場合も、実際の値は、JSP 表現により渡されます。
</ul>
<p>
<a href="sources/psgHeader.html" <%= sourceTarget %>>
ヘッダ
</a>
<ul>
指示語を含む静的な JSP の使用は、頻繁に使用される HTML スニペッ
トを再利用する一般的な手法です。このデモでは、
PSG 社の住所が FAX 送付状ジェネレータおよびすべての請求書
ジェネレータ アプリケーションで使用されています。
</ul>
</font>
</ul>
</font>
</td>
</tr>
<tr bgcolor="#FFFFFF"><td> </td></tr>
<tr bgcolor="#FAFAD2">
<td>
<font face="arial">
<a href="/invoice/invoice1.jsp">請求書ジェネレータ - バージョン 1</a>:
ベーシック
<ul>
<font size=-1>
これは、実働時間を入力する基本的なフォームの例です。2 ページから
成っています。呼び出しページには、2 つの表のあるフォームがあり
ます。はじめに開発者の名前、クライアントの会社名など、一般的な
請求書情報を入力し、それから、請求する時間を入力します。
ユーザがフォームを送信すると、請求書として印刷し FAX 送信できる
ような書式で 2 ページ目が生成されます。
<p>
<a href="sources/invoice1_jsp.html" <%= sourceTarget %>>
呼び出し元
</a>
<ul>
呼び出しページは、HTML フォーム要素を含むスクリプトレットや
表現を含む JSP です。
この例では、特に埋め込み Java を使用してループ処理を行う方法を
示しています。
</ul>
<p>
<a href="sources/generateInvoice1_jsp.html" <%= sourceTarget %>>
ジェネレータ
</a>
<ul>
生成ページでは、スクリプトレットを使用して、呼び出し元ページに入 力されたパラメータを抽出します。ヘッダが作成された後、
PSG のテンプレートと整然とフォーマットされた表内のパラメータ
値が解析されます。はじめの表には、一般的なパラメータが含まれ
ます。次の表では、請求される時間が列挙されます。値は、
インライン スクリプトレット内で宣言され、初期化された
変数を使用した JSP 表現として渡されます。
</ul>
<p>
<a href="sources/psgHeader.html" <%= sourceTarget %>>
ヘッダ
</a>
<ul>
指示語を含む静的な JSP の使用は、頻繁に使用される HTML スニペッ
トを再利用する一般的な手法です。このデモでは、
PSG 社の住所が FAX 送付状ジェネレータおよびすべての請求書
ジェネレータ アプリケーションで使用されています。
</ul>
</font>
</ul>
</font>
</td>
</tr>
<tr bgcolor="#FFFFFF"><td> </td></tr>
<tr bgcolor="#FAFAD2">
<td>
<font face="arial">
<a href="/invoice/invoice2.jsp">請求書ジェネレータ - バージョン 2</a>:
Java Bean および JRun カスタム タグ ライブラリ
<ul>
<font size=-1>
これは、Java Bean と Allaire JRun カスタム タグ ライブラリの
カスタム タグを使用する例です。
<p>
さらに自動化された請求書サンプル アプリケーションの例を示して
います。
はじめにユーザはクライアントの会社名を選択します。すると選択
ボックスにその会社での実働時間が表示されます。ユーザはそれから
週を選択し、フォームを送信します。請求書として印刷しできるような
書式でページが生成されます。
<p>
バージョン 2 およびバージョン 3 は、より間接的で、時間管理
システム (この場合、Emacs パッケージ) のファイルシステムに
格納されたデータから請求書が生成されます。
<p>
<a href="sources/invoice2_jsp.html" <%= sourceTarget %>>
呼び出し元
</a>
<ul>
このバージョンには、JSP ページが 1 つだけあり、条件文で含まれる
ページを使用して印刷できる形式の請求書のセットアップと生成が
行われます。
請求書に使用されるデータは、Emacs ベースの時間管理システムにより
生成されます。
<a href="sources/timecard-mode.html"><i>timecard-mode.el</i></a>
</ul>
<p>
<a href="sources/invoice2-setup_jsp.html" <%= sourceTarget %>>
セットアップ
</a>
<ul>
セットアップのインクルード ファイルでは、JRun カスタム タグ
および Java Bean が使用されています。カスタム タグにより会社の
リストの選択肢および週のリストを構築するループが制御されます。
Bean は、ステート情報を維持します。
</ul>
<p>
<a href="sources/invoice2-generate_jsp.html" <%= sourceTarget %>>
ジェネレータ
</a>
<ul>
ジェネレータのインクルード ファイルでは、JRun カスタム タグ
および Java Bean が使用されています。カスタム タグにより実働
時間の表を構築するループが制御されます。Bean は、実働時間と共通
の請求書情報の値を提供します。
</ul>
<p>
<a href="sources/InvoiceBean_java.html" <%= sourceTarget %>>
Java Bean
</a>
<ul>セルフ ドキュメント</ul>
<p>
<a href="sources/InvoiceException_java.html" <%= sourceTarget %>>
例外ハンドラ
</a>
<ul>セルフ ドキュメント</ul>
</font>
</ul>
</font>
</td>
</tr>
<tr bgcolor="#FFFFFF"><td> </td></tr>
<tr bgcolor="#FAFAD2">
<td>
<font face="arial">
<a href="/invoice/invoice3.jsp">請求書ジェネレータ - バージョン 3</a>:
カスタム タグ
<ul>
<font size=-1>
これは、自動ソリューションなど、バージョン 2 と同じインター
フェイスの請求書サンプル アプリケーションです。
はじめにユーザはクライアントの会社名を選択します。すると選択
ボックスにその会社での実働時間が表示されます。ユーザーは週を
選択し、フォームを送信します。請求書として印刷しできる
ような書式でページが生成されます。
<p>
バージョン 3 は、JSP カスタム タグのパワーと優位性を示す例です。
アプリケーションのフル パワーとビジネス ロジックを明瞭に
切り離す JSP のフルパワーを見ることができます。
<p>
<a href="sources/invoice3_jsp.html" <%= sourceTarget %>>
呼び出し元
</a>
<ul>
このソリューションには、JSP ページが 1 つだけあり、
条件文で含まれる
ページを使用して印刷できる形式の請求書のセットアップと生成が
行われます。
請求書に使用されるデータは、Emacs ベースの時間管理システムにより
生成されます。
<a href="sources/timecard-mode.html"><i>timecard-mode.el</i></a>
<p>
このバージョンでは、ほとんどすべてカスタム タグが使用されて
います。ソース コードとは対照に、
カスタム タグによって余分な詳細が隠され、見た目とビジネス
ロジックが明瞭に切り離されている様子を見ることができます。
</ul>
<p>
<a href="sources/invoice3-setup_jsp.html" <%= sourceTarget %>>
セットアップ
</a>
<ul>
セットアップのインクルード ファイルでは、ほとんどすべてカスタム
タグが使用されています。スクリプトレットは、1 つだけ使用されて
いるため、クライアントの会社が選択されるまで週の選択ボックスが
表示されないような仕組みになっています。
</ul>
<p>
<a href="sources/invoice3-generate_jsp.html" <%= sourceTarget %>>
ジェネレータ
</a>
<ul>
ジェネレータのインクルード ファイルでは、JSP カスタム タグ
のみが使用されています。
それぞれのタグはセルフ ドキュメントです。
</ul>
<p>
<a href="sources/InvoiceDataModel_java.html" <%= sourceTarget %>>
データ モデル
</a>
<ul>セルフ ドキュメント</ul>
<p>
<a href="sources/InvoiceException_java.html" <%= sourceTarget %>>
例外ハンドラ
</a>
<ul>セルフ ドキュメント</ul>
<p>
<a href="sources/web.html" <%= sourceTarget %>>
Web アプリケーション コントロール
</a>
<ul>
カスタム タグ ライブラリの場所を指定します。
</ul>
<p>
<a href="sources/invoice-taglib.html" <%= sourceTarget %>>
タグ ライブラリの仕様
</a>
<ul>
タグおよびカスタム タグ ライブラリ用の関連サーブレットを
指定します。
</ul>
<p>
<a href="sources/DayHours_java.html" <%= sourceTarget %>>
<inv:getDayHours>
</a>
<ul>
現在の日付インデックスに請求可能な時間を出力します。
<inv:foreachDay> タグ内に置く必要があります。
</ul>
<p>
<a href="sources/DayIterator_java.html" <%= sourceTarget %>>
<inv:foreachDay>
</a>
<ul>
曜日を一週間分リストします。リストのたびに
<inv:getDayHours> および <inv:getDayName>
カスタム タグの値が出力されます。
</ul>
<p>
<a href="sources/DayName_java.html" <%= sourceTarget %>>
<inv:getDayName>
</a>
<ul>
現在の日付の名前を出力します。
<inv:foreachDay> タグ内に置く必要があります。
</ul>
<p>
<a href="sources/InvoiceCondition_java.html" <%= sourceTarget %>>
<inv:condition>
</a>
<ul>
タグ本文を評価し、結果を
<inv:if> タグであるべき親タグにブール値として格納します。
</ul>
<p>
<a href="sources/InvoiceElse_java.html" <%= sourceTarget %>>
<inv:else>
</a>
<ul>
関連付けられた条件が false の場合、本文コンテンツを実行します。
条件は、<inv:if> タグにあるはずの親によって格納されます。
</ul>
<p>
<a href="sources/InvoiceItem_java.html" <%= sourceTarget %>>
<inv:getItem>
</a>
<ul>
<b>Iterator</b> オブジェクトによって与えられる項目に
アクセスします。このタグは、
<inv:foreachDay> タグ内にあるはずです。
</ul>
<p>
<a href="sources/InvoiceProperty_java.html" <%= sourceTarget %>>
<inv:getProperty>
</a>
<ul>
名前のついたプロパティにアクセスします。<i>name</i> 属性で
プロパティを指定します。
</ul>
<p>
<a href="sources/InvoiceThen_java.html" <%= sourceTarget %>>
<inv:then>
</a>
<ul>
関連付けられた条件が false の場合、本文コンテンツを実行します。
条件は、<inv:if> タグにあるはずの親によって格納されます。
</ul>
</font>
</ul>
</font>
</td>
</tr>
<tr bgcolor="#FFFFFF"><td> </td></tr>
<tr bgcolor="#8FBC8F">
<td align="center">
<font size=-2 face="arial">
(c) 2001 <a href="http://www.allaire.com/">Allaire Corporation</a>, All rights reserved.
</font>
</td>
</tr>
</table>
</center>
</body>
</html>