JSP検証およびリダイレクト:フォーム入力を検証し、エラーを元のページに転送する方法

キリル:

私はJSPのクラスを取り、割り当てがあります...ユーザー入力を受け取るJSPページを作成し、入力を検証してから、別のWebサイトに転送する必要があります。より正確には、アムトラックのWebサイトのFareFinder機能の初歩的なバージョンを実装するように求められました。

この割り当てには主に2つの目的があります。
(a)ミドルウェアとして機能するJSPを作成する。
(b)フォームデータを検証するJSPを記述します。

検証を行う原則について一般的な質問があります。現在、フォームと送信ボタンを持つJSPがあります。ユーザーが送信ボタンをクリックすると、Validate.jspに転送されます。次に、Validate.jspはデータを検証し、入力に問題がなければ、すべてのパラメーターが入力された状態で要求を自動的にアムトラックのWebサイトにリダイレクトします。

FareFinder.jsp- > Validate.jsp- > Amtrak
(ファイル名をクリックして、ペーストリー内のすべてのコードを表示します)

簡単に言えば、私がFareFinder.jspを実行している主なこと:

<FORM METHOD=POST ACTION="Validate.jsp">
    <!-- all the input fields are up here -->
    <P><INPUT TYPE=SUBMIT></P>
</FORM>

Validate.jspで私がしている主なこと:

<%@ page import="java.util.*" import="java.io.*"%>
<%
    // retreive all the parameters
    String origin = request.getParameter("_origin");
    String depmonthyear = request.getParameter("_depmonthyear");
    String depday = request.getParameter("_depday");
    String dephourmin = request.getParameter("_dephourmin");
    String destination = request.getParameter("_destination");
    String retmonthyear = request.getParameter("_retmonthyear");
    String retday = request.getParameter("_retday");
    String rethourmin = request.getParameter("_rethourmin");
    String adults = request.getParameter("_adults");
    String children = request.getParameter("_children");
    String infants = request.getParameter("_infants");
    String searchBy = request.getParameter("_searchBy");

    // validate the data

    // redirect to Amtrak or back to FareFinder.jsp
%>

いくつか質問が
あります。Validate.jspからFareFinder.jspに戻り、検証ページで見つかったエラーを反映するにはどうすればよいですか。
エラーを見つけたら、応答をFareFinder.jspにリダイレクトし直しますか?
エラーをFareFinder.jspに送信するにはどうすればよいですか?

一般的な答えも大丈夫ですが、私は例として私のコードを与えています。

注:検証はサーバー側で実行する必要があり、JavaScriptを使用できません。

BalusC:

コメントのとおり、サーブレットもカバーされています。次に、1つを作成し、doPost()次のように実装します(準疑似)。

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    Map<String, String> errors = new HashMap<String, String>();

    String origin = request.getParameter("origin");
    if (origin does not validate) {
       errors.put("origin", "Put error message here.");
    }

    // Repeat for all parameters.

    if (errors.isEmpty()) {
        // No errors, redirect to Amtrak.
        response.sendRedirect("http://amtrak.com");
    } else {
        // Put errors in request scope and forward back to JSP.
        request.setAttribute("errors", errors);
        request.getRequestDispatcher("FareFinder.jsp").forward(request, response);
    }
}

このサーブレットをweb.xmlマッピングして、url-patternから/validateFare呼び出せるようにしhttp://example.com/context/validateFareます。

次に、JSPで次のようにします。

<form action="validateFare" method="post">
    <label for="origin">Origin</label>
    <input id="origin" name="origin" value="${param.origin}">
    <span class="error">${errors.origin}</span>

    <!-- Repeat other fields here. -->
</form>

フォームがactionすでにサーブレットを指していることがわかります。${param.origin}入力値では、実行して送信された値を保持しますrequest.getParameter("origin")フードの下で。${errors.origin}大体行って、関連するすべてのエラーメッセージが表示されますpageContext.findAttribute("errors").get("origin")

これはあなたを始めなければなりません:)頑張ってください。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

フォーム検証エラー。エラーページにリダイレクトします

API を取得してページをリダイレクトする前の React JS フォームの検証

プレゼンターのクラスのエディターと検証フレームワークを使用して、GWTマテリアル入力にフォーム検証制約メッセージを表示する方法は?

j-queryフォーム検証コードはページをリダイレクトします

Angular 6フォームは、送信およびリセット後に検証エラーを返します

フォームPOSTを別のページに送信しますが、リダイレクトする前に検証し、検証が失敗した場合は同じページを保持します

フォームの検証後にリダイレクトする方法は?

フォームの検証時に前のページを再レンダリングする方法

Spring Bootアプリで@ValidおよびBindingResultを使用する際のフォーム入力検証の問題

jqueryを使用してajaxページからのフォームの入力を検証する方法

フォームの入力値を保持しながら、ユーザーを別のページにリダイレクトしてから元に戻す方法

インライン検証手法、フォームの最後の入力を検証する方法は?

ボタン(送信しない)をクリックするか、フォームに入力する際のYIIでのクライアント側の検証

フォーム送信後にマットエラーの検証エラーをクリアする方法

フォームの検証エラーを部分的にレンダリングする方法-Rails

djangoは、クラスベースビュー(ListView)でフォームセットをレンダリングおよび検証します

Laravelフォームの検証では、フォームエラーが発生すると、同じページにとどまるのではなく、ホームページにリダイレクトされます。

反応でフォームを検証した後、ユーザーを次のページに送る方法は?

Angularリアクティブフォーム:ダイアログに検証エラーを表示する方法

検証フォーム:空白の入力に対して1つずつではなく一度にエラーメッセージを表示する方法は?

httpRequest(ajax呼び出し)といくつかの検証の後にページをロードしていくつかのフィールドに入力するにはどうすればよいですか?サインインリダイレクトをクリックした後、フィールドにデータを入力します

Djangoajaxフォーム-フォームの検証後にメインページにリダイレクトします

Laravel5.1フォームリクエストの検証入力を返します

Laravel5でフォームリクエストの検証後に古い入力を渡す

フォームの検証に合格した後、ページがストライプチェックアウトにリダイレクトされない

検証が失敗したときに、以前に入力したデータを使用してフォームをレンダリングする方法

jQuery検証プラグインを使用してキーアップ時に非フォーム要素で入力を検証する方法

クライアント側の検証が失敗した場合にASP.NETMVCレジスタフォームでajaxスピナーを停止する方法

Bootstrapモーダルにフォーム検証エラーを追加する方法

TOP 一覧

  1. 1

    STSでループプロセス「クラスパス通知の送信」のループを停止する方法

  2. 2

    Spring Boot Filter is not getting invoked if remove @component in fitler class

  3. 3

    Python / SciPyのピーク検出アルゴリズム

  4. 4

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  5. 5

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

  6. 6

    androidsoongビルドシステムによるネイティブコードカバレッジ

  7. 7

    ZScalerと証明書の問題により、Dockerを使用できません

  8. 8

    VisualStudioコードの特異点/ドッカー画像でPythonインタープリターを使用するにはどうすればよいですか?

  9. 9

    ビュー用にサイズ変更した後の画像の高さと幅を取得する方法

  10. 10

    二次導関数を数値計算するときの大きな誤差

  11. 11

    Ansibleで複数行のシェルスクリプトを実行する方法

  12. 12

    画像変更コードを実行してもボタンの画像が変更されない

  13. 13

    Reactでclsxを使用する方法

  14. 14

    Three.js indexed BufferGeometry vs. InstancedBufferGeometry

  15. 15

    __init__。pyファイルの整理中に循環インポートエラーが発生しました

  16. 16

    PyTesseractを使用した背景色のため、スクリーンショットからテキストを読み取ることができません

  17. 17

    値間の一致を見つける最も簡単な方法は何ですか

  18. 18

    reCAPTCHA-エラーコード:ユーザーの応答を検証するときの「missing-input-response」、「missing-input-secret」(POSTの詳細がない)

  19. 19

    三項演算子良い練習の代わりとしてOptional.ofNullableを使用していますか?

  20. 20

    好き/愛の関係のためのデータベース設計

  21. 21

    エンティティIDを含む@RequestBody属性をSpringの対応するエンティティに変換します

ホットタグ

アーカイブ