所以,我目前正在尝试学习一些 JSP,但我不知道如何解决我遇到的这个问题。
目前,我有一个包含多个表单的 index.jsp 页面。对于一种表单,它有两个文本字段,将其发送到 servlet test.java 以构建字符串。构建字符串后,servlet 会重定向回 index.jsp
原始 index.jsp 地址:
http://localhost:8080/TestJSPConversion/
重定向后,地址为
http://localhost:8080/TestJSPConversion/test
当我尝试在 index.jsp 上使用另一个表单时出现问题,然后它会将我带到地址处的空白页,
http://localhost:8080/TestJSPConversion/test?author=Peter+Johnson
我相信这是由于我用来从 servlet 重定向的方法 (request.getRequestDispatcher("/index.jsp").forward(request, response); 但是,我不太确定如何解决这个问题。即使在 servlet 重定向回 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}" />