「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*」が不要です。 ----------------------------------------------- お詫びして訂正致します。 けんじ@大阪市淀川区様に多くの指摘をしていただきました。 ありがとうございます。