9

私は持ってい2 jsp pages and one Servletます。サーブレットによってデータベースからデータを取得し、結果を表示してresult.jspいるページに結果を送信しています。しかし、私はに行きたいをクリックしてに追加したいのBack buttonですが、問題は、メッセージが来るたびに戻るボタンをクリックしていて、私を苛立たせていることです。どうすればこれを回避できますか? サーブレットで処理をしているので来ているのかもしれません。result.jspback buttonindex.jspConfirm form submissionConfirm form submission

index.jsp

<form method="post" action="Student">

<input type="text" name="studentname"/>
<input type="submit" value="search"/>

</form>

学生サーブレット

 String student_name=request.getParameter("studentname");

  -------fetching data from database------------
  -------------------sending to result.jsp------

  String nextJSP = "/result.jsp";
      RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(nextJSP);
      dispatcher.forward(request,response);

結果.jsp

 //displaying data here

<form action="index.jsp">

 <input type="submit" value="back"/>// a back button is here which is going to index.jsp   
</form>

編集

以下のようなresult.jsp別のページに移動しますresult1.jsp

result.jsp私は次のように書いています:

<a  href="result1.jsp.jsp?a code=<%out.println(student_name);%>"><%out.println(student_name);%></a>

上記のハイパーリンクをクリックして、私は行きましたresult1.jsp

ここ(result1.jsp)に戻るボタンを追加したいのですが、クリックした後にresult.jspにしたいのですが、戻るボタンをクリックするとConfirm form submission毎回取得しています。に次のように書いています。result1.jsp

<input type="button" value="Back" onclick="javascript:history.go(-1)">

それでも私はそのメッセージを受け取っていますConfirm form submission。どうすればこれを回避できますか? result.jspこのメッセージなしで直接行きたいです。それはどのように可能ですか?

4

8 に答える 8

7

これを使用して 1 ページ戻ることもできます

<button type="button" name="back" onclick="history.back()">back</button>
于 2012-05-09T09:58:18.743 に答える
1

戻るボタンを index.jsp にしたい場合は、通常のリンクを作成してみませんか?

<a href="index.jsp">Back</a>

メッセージを取り除くには、通常のリンクまたは の 2 つの方法しかありませんwindow.location。前のページが常に同じであれば、クライアント側で複雑な機能を使用する必要はありません。ページが異なる可能性がある場合は、result.jsp へのリンクを投稿し、それを使用して実際に戻るリンクを印刷してください。

編集 :

以前の.jsp

<form method="post" action="Student">
<input type="hidden" name="back" value="previous.jsp" />
<input type="text" name="studentname"/>
<input type="submit" value="search"/>
</form>

結果.jsp

out.println("<a href=\"" + request.getParameter("back") + "\">Back</a>");
于 2012-11-17T11:34:11.593 に答える
1

これを試して

<button type="button" 
    name="back" 
    onclick='window.location='<your_path>/index.jsp'>back</button>
于 2012-05-09T12:52:26.373 に答える
0

そのフォーム送信確認は Safari で経験しました (IE/Chrome/FF ではありません)。

回避策は、「get」メソッドを使用してフォームを送信することです。もちろん、これは「小さい」フォーム (最大 2048 K) でのみ有効です。

于 2014-02-05T13:51:09.567 に答える
0

共通で使えますbutton

<input type="button" value="Back" onclick="javascript:history.go(-1)">

を使用history.go(-1)すると、ブラウザはキャッシュから読み取って前のページを表示するだけで、データをサーバーに再送信しないため、何Confirm form submissionも起こりません。

編集

私は間違っていた!

必要なのはクライアント側のリダイレクトだけです。result.jspから送信されたフォームを処理した後、次のように記述できますindex.jsp

response.sendRedirect("result.jsp");

そのため、単純な表示リクエストなのかフォーム送信result.jspなのかを判断するのに役立つパラメータが必要になります。たとえば、次のようになります。

String action = request.getParameter(action);
if("submit".equals(action)) {
    // handle form data
    response.sendRedirect("result.jsp");
} else {
    // other code to display content of result.
}

では、index.jsp次のようになります。

....
<form action="result.jsp?action=submit" ...>
于 2012-05-09T09:59:09.903 に答える