始める前に、『課題 2.3: ファイル・アップロード・コンポーネントの使用』を完了しておく必要があります。
「new_record.jsp」ページをセットアップするときに重要なのは、データベースの各レコードには固有の ID 番号が必要なので、ユーザーが既に使用されている ID 番号を入力しないように注意しなければならないという点です。これについては、『課題 1.4: 新規レコードの作成』で詳しく説明します。簡単に言えば、ユーザーにこの誤りをさせないようにすることです。
次の課題 (『課題 2.5: 自動キー生成の使用』) では、自動キー生成を使用し、ユーザーが ID 番号を入力する必要を完全に回避します。この課題では、入力された ID が固有であるかどうかを検査します。固有でない場合は、問題を説明するエラー・ページにユーザーを移動させて、ユーザーにその修正方法を伝えます。
ナビゲーション規則 は、ユーザーが重複 ID 番号を入力したかしなかったか、その検査結果によって、ユーザーをエラー・ページか all_records.jsp ページに誘導することができます。すなわち、このような 2 つの考えられる結果に別名を割り当て、次に、この 2 つの別名を正しいターゲット・ページにリンクさせます。この例では、create_record.jsp ページでエラーがあると、ERROR_CREATE 別名にシグナルが送られます。この別名は、このユーザーをエラー・ページに送ります。ユーザーが create_record.jsp ページを正しく埋めると、MAIN 別名にシグナルが送られて、この別名は、通常どおり all_records.jsp ページにリンクします。
新規レコードをデータベースに作成してコミットしたときに何か間違いがあれば、最初の規則によって、ユーザーは create_error.jsp という名前のエラー・ページに送られます。
次の規則は、ユーザーが有効な ID 番号を入力した場合に、all_records.jsp に戻るようナビゲートするものです。
現在、すべきことで残されているすべては、使用する新規ナビゲーション規則が働くようにすることだけです。「新規リストの掲載 (Post New Listing)」ボタンのためのコードには、2 つの return 文を追加します。これらの return 文は、ユーザーがナビゲーション規則で決まっている適切なページに送られるように、アプリケーション別名を呼び出します。
この catch 関数は、ユーザーが重複 ID 番号を入力した場合に実行されます。
return "ERROR_CREATE";
return "MAIN";
このステップによって、課題 1.4 で追加した「ページへジャンプ」アクションが除去されます。このコードは、ナビゲーション規則が同じことを行うので、不要になりました。
ユーザーのボタンのコードは、現在下図のようになっているはずです。
オプションで、ユーザーがリストを作成するときにエラーが発生したので、異なる ID 値を試行するようにとユーザーに説明する、create_error.jsp という名前の単純なエラー・ページを作成することができます。ここで、既存の ID 値 (たとえば 1) を使用する新規リストの追加を試みることによって、これらのナビゲーション規則をテストしてみることができます。
これで、『課題 2.5: 自動キー生成の使用』を始める準備が完了しました。