2017-02-05 7 views
0

私はサーブレットとJSPを使ってオンライン検査プロジェクトを作成しています。管理者は、質問を含む試験をオプションで追加することができます。最初のJSPは、最初の質問を追加するときです。次のボタンのみが含まれています。最後のJSPには戻るボタンのみが含まれ、その他には次と戻るボタンが含まれています。各試験には5つの質問があります。私の問題は、ボタンを使用してこれらのJSP間を移動する方法です。ここに私のコードは、それがNEXTとBACKボタンを使用してJSP間を移動する方法は?

// Servlet code: 
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

    int i=1; 
    String button1=request.getParameter("back"); 
    String button2=request.getParameter("next"); 
    if(button1!=null){ 
     i=i-1; 
    } 
    if (button2!=null){ 
     i=i+1; 
    } 
    if(i==1){ 
     this.getServletContext().getRequestDispatcher("/WEB-INF/AddFirstQuestion.jsp").forward(request, response); 
    } 
    else if (i==5 ){ 
     this.getServletContext().getRequestDispatcher("/WEB-INF/AddLastQuestion.jsp").forward(request, response); 

    } 
    else if (i>1 && i<5){ 
     this.getServletContext().getRequestDispatcher("/WEB-INF/AddQuestion.jsp").forward(request, response); 
    } 

} 

機能しないとJSPコードの一部がある理由を私は知らない、次のとおりです。すべての

<input type="submit" name ="next" value="Suivant" /> 
+0

JSPは、サーバーサイド技術であり、ブラウザのツールバー上のクリックされたボタンを認識していません。あなたができる最も近いのは、クリックしたボタンを取得してリクエストパラメータとしてJSPページに渡すためにjavascriptを使用することです - しかし、なぜ誰かがそれをしますか? – Prashant

答えて

1

まず、あなたは、JSPのコードスニペットのISNです表示されていない場合は、フォームメソッドを作成し、メソッド内にメソッドを「投稿」として設定します。 getServletRequestの使用についてはわかりません。これを試してみてください。

RequestDispatcher dispatcher = request.getRequestDispatcher("AddLastQuestion.jsp"); 
dispatcher.forward(request, response); 

また、「戻る」属性を取得していません。サーブレットが処理するために次の属性だけが受信されます。したがって、button2は常にnullに設定されます。 このようにしてみてください。 JSP

サーバー側で
<input type="submit" name ="next" value="Suivant" /> 
<input type="submit" name ="back" value="Suivant" /> 

、サーブレット

if(i==1){ 
    RequestDispatcher dispatcher = request.getRequestDispatcher("AddLastQuestion.jsp"); 
dispatcher.forward(request, response); 

} 
else if (i==5 ){ 
    RequestDispatcher dispatcher = request.getRequestDispatcher("AddLastQuestion.jsp"); 
dispatcher.forward(request, response); 


} 
関連する問題