「JSP帳票アプリケーション実践開発入門」 正誤表・補遺
---------------------------------------------
付属のCD-ROMのINSTALL/PdfBuilderフォルダに収録されているpdfbuilder.jarはバージョンの古いものでした。/JspPdf/Sample/JSP/WEB-INF/libフォルダまたは/JspPdf/SampleApp/JSP/WEB-INF/libフォルダのpdfbuilder.jarをコピーして使ってください。
-----------------------------------------------
P.42, P307,P382
CD-ROMの\JspPdf\SampleApp\SQL\sample_app.sql で、
tExpenseItemテーブルにcDescriptionカラムの定義が抜けていました(本文には入っています)。
経費精算・確認画面で
org.apache.jasper.JasperException: An exception occurred processing JSP page /expense/Save.jsp at line 47
というエラーが発生した場合は次の手順でmysqlのテーブルを修正してください。
1. コマンドプロンプトを開く
2. mysql -u root -p と入力し、Enter password: と表示されたらMySQLインストール時に指定したパスワードを入力
3. use dsampleapp と入力してデータベースを切り替える
4. alter table tExpenseItem add cDescription varchar(255); を入力してテーブルにカラムを追加
5. exit でmysqlを終了
-----------------------------------------------
P.83
/JspPdf/Sample/JSP/BasicJsp/DispTime.inc
function getServerTime()の3行目
誤:req.open('GET', 'GetTime.jsp', true);
正:req.open('GET', 'GetTime.jsp?time='+new Date(), true);
この部分のJavaScriptではセッションを維持するためにブラウザからサーバーへ定期的なアクセスを行わせることを意図していますが、MSIEでは同じURIにアクセスすると2度目からはキャッシュを使うため、サーバーへのアクセスが生じないことがわかりました。[正]では "?time='+new Date()"を追加して毎回異なるURIになるようにしています。
-----------------------------------------------
P.90
Check.js の5行目
誤:document.write("")
正:document.write("");
最後のセミコロンが抜けています。
-----------------------------------------------
P.104
View.jspで以下の行が抜けています(CD-ROMのサンプルコードには入っています)。
<%@ page import="jsppdf.sample.AppException" %>
-----------------------------------------------
P.105
「データベース連携」のページで以下の例外が生じる場合があります。
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/dsample?user=Mulder&password=TrustNo1&characterEncoding=utf8
このメッセージは「データベースへアクセスするためのドライバが見つからない」という意味です。環境によっては出ないこともあるのですが、この例外が出る場合は//step2の
Connection mConn = DriverManager.getConnection(mConnStr);
の前に次の1行を入れてください。
Class.forName("com.mysql.jdbc.Driver");
次のようになります。
//step2 *********
String mConnStr = "jdbc:mysql://localhost/dsample"
+"?user=Mulder&password=TrustNo1"
+"&characterEncoding=utf8";
Class.forName("com.mysql.jdbc.Driver"); //★ココ★
Connection mConn = DriverManager.getConnection(mConnStr);
-----------------------------------------------
P.178
本文の3行目
誤:登録したデータを確認するために、“select * from address”を実行します。
正:登録したデータを確認するために、“select * from tAddress”を実行します。
-----------------------------------------------
P.481 【34】
/JspPdf/SampleApp/JSP/WEB-INF/classes/PrintInvoice.java 85行目
誤:aryTaxTypeNameS[item.fPrice*item.fTaxType]);
正:aryTaxTypeNameS[tem.fTaxType]);
「item.fPrice*」が不要です。
-----------------------------------------------
お詫びして訂正致します。
けんじ@大阪市淀川区様に多くの指摘をしていただきました。
ありがとうございます。