index.jsp

<%@ page contentType="text/html; charset=euc-jp" %>
<!-- 
  Copyright 2001, Pajato Systems Group
  Copyright 2001, Allaire Corporation
-->

<!-- Set up controls for managing the use of windows to   -->
<!-- display the applications, sources and comments.      -->
<%
    // 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>

    <!-- Title Line -->
    <tr bgcolor="#8FBC8F">
	<td align="center">
	  <font face="arial"><a href="/demo/index.html">JRun デモとサンプル ページ</a> : Allaire の請求書サンプル アプリケーション</font>
	</td>
    </tr>

    <!-- Blank Line -->
    <tr bgcolor="#FFFFFF"><td>&nbsp;</td></tr>

    <!-- Overview -->
    <tr bgcolor="#FAFAD2">
      <td>
	<font face="arial" size=-1>
          <h2>JRun の請求書サンプル アプリケーションへようこそ!</h2>
	  <ul>
            この Web アプリケーションでは、クライアントの会社に送付する請求書を作成するためのアプリケーションの例を紹介します。このアプリケーションでは、FAX 送付状の作成と、請求書の生成の 2 つの操作が実行されます。様々な JSP のコーディング技術を紹介するために、請求書の生成には 3 つのバージョンがあります。

          </ul>
        </font>
      </td>
    </tr>

    <!-- Blank Line -->
    <tr bgcolor="#FFFFFF"><td>&nbsp;</td></tr>

    <!-- Sample Servlets -->
    <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>

    <!-- Blank Line -->
    <tr bgcolor="#FFFFFF"><td>&nbsp;</td></tr>

    <!-- Sample JSP Pages -->
    <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>

    <!-- Blank Line -->
    <tr bgcolor="#FFFFFF"><td>&nbsp;</td></tr>

    <!-- Sample JSP Pages -->
    <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>

    <!-- Blank Line -->
    <tr bgcolor="#FFFFFF"><td>&nbsp;</td></tr>

    <!-- Sample JSP Pages -->
    <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 %>>
	        &lt;inv:getDayHours&gt;
	      </a>

	      <ul>
	        現在の日付インデックスに請求可能な時間を出力します。
		&lt;inv:foreachDay&gt; タグ内に置く必要があります。
	      </ul>

	      <p>
	      <a href="sources/DayIterator_java.html" <%= sourceTarget %>>
	        &lt;inv:foreachDay&gt;
	      </a>

	      <ul>
                曜日を一週間分リストします。リストのたびに
                &lt;inv:getDayHours&gt; および &lt;inv:getDayName&gt;
                カスタム タグの値が出力されます。
              </ul>

	      <p>
	      <a href="sources/DayName_java.html" <%= sourceTarget %>>
	        &lt;inv:getDayName&gt;
	      </a>

	      <ul>
	        現在の日付の名前を出力します。
	        &lt;inv:foreachDay&gt; タグ内に置く必要があります。
	      </ul>

	      <p>
	      <a href="sources/InvoiceCondition_java.html" <%= sourceTarget %>>
	        &lt;inv:condition&gt;
	      </a>
	
	      <ul>
                タグ本文を評価し、結果を
		&lt;inv:if&gt; タグであるべき親タグにブール値として格納します。
              </ul>

	      <p>
	      <a href="sources/InvoiceElse_java.html" <%= sourceTarget %>>
	        &lt;inv:else&gt;
	      </a>
      
	      <ul>
                関連付けられた条件が false の場合、本文コンテンツを実行します。
                条件は、&lt;inv:if&gt; タグにあるはずの親によって格納されます。
              </ul>

	      <p>
	      <a href="sources/InvoiceItem_java.html" <%= sourceTarget %>>
	        &lt;inv:getItem&gt;
	      </a>

	      <ul>
                <b>Iterator</b> オブジェクトによって与えられる項目に
                アクセスします。このタグは、
                &lt;inv:foreachDay&gt; タグ内にあるはずです。
              </ul>

	      <p>
	      <a href="sources/InvoiceProperty_java.html" <%= sourceTarget %>>
	        &lt;inv:getProperty&gt;
	      </a>

	      <ul>
                名前のついたプロパティにアクセスします。<i>name</i> 属性で
                プロパティを指定します。
              </ul>

	      <p>
	      <a href="sources/InvoiceThen_java.html" <%= sourceTarget %>>
	        &lt;inv:then&gt;
	      </a>

	      <ul>
	        関連付けられた条件が false の場合、本文コンテンツを実行します。
	        条件は、&lt;inv:if&gt; タグにあるはずの親によって格納されます。
              </ul>

            </font>
          </ul>
        </font>
      </td>
    </tr>

    <!-- Blank Line -->
    <tr bgcolor="#FFFFFF"><td>&nbsp;</td></tr>

    <!-- Title Line -->
    <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>