そのため、現在、JSPを学習しようとしていますが、この問題を回避する方法がわかりません。
現在、いくつかの形式のindex.jspページがあります。1つのフォームには、文字列を作成するためにサーブレットtest.javaに送信する2つのテキストフィールドがあります。文字列を作成した後、サーブレットはindex.jspにリダイレクトします。
元のindex.jspアドレス:
http://localhost:8080/TestJSPConversion/
リダイレクト後のアドレスは
http://localhost:8080/TestJSPConversion/test
index.jspで別のフォームを使用しようとすると問題が発生し、アドレスの空白のページに移動します。
http://localhost:8080/TestJSPConversion/test?author=Peter+Johnson
サーブレットからリダイレクトするために使用しているメソッド(request.getRequestDispatcher( "/ index.jsp")。forward(request、response);が原因だと思いますが、この問題を修正する方法がよくわかりません。サーブレットがindex.jspにリダイレクトした後でも、フォームを機能させたいのですが。
サーブレットコード:
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
// Get parameters from the request.
String name = request.getParameter("name");
String email = request.getParameter("email");
String message = null;
GregorianCalendar calendar = new GregorianCalendar();
if (calendar.get(Calendar.AM_PM) == Calendar.AM) {
message = "Good Morning, ";
} else {
message = "Good Afternoon, ";
}
message += name + " with the email, " + email;
request.setAttribute("message", message);
request.getRequestDispatcher("/index.jsp").forward(request, response);
}
Index.jspコード:
<h2>Choose authors:</h2>
<form method="get">
<input type="checkbox" name="author" value="Tan Ah Teck">Tan
<input type="checkbox" name="author" value="Mohd Ali">Ali
<input type="checkbox" name="author" value="Kumar">Kumar
<input type="checkbox" name="author" value="Peter Johnson">Peter
<input type="submit" value="Query">
</form>
<c:set var="authorName" value="${param.author}" />
</br>
<c:if test="${not empty authorName}">
<c:out value="${authorName}" />
</c:if>
</br>
<form action="test" method="POST">
First Name: <input type="text" name="name" size="20"><br />
Surname: <input type="text" name="email" size="20">
<br /><br />
<input type="submit" value="Submit">
</form>
<c:out value="${message}" />