我有一个关于JSP和Servlet的问题。我在 IDE 中使用 MVC 模型。JSP 页面索引.jsp 在我第一次运行代码时被调用。现在我的 Servlet 就是我的控制器。Jsp 页面有一个包含两个值的下拉框。交易是如果我选择一个值,假设两个选项中的选项 1 并提交它。控件应转到Contoller(Servlet)。控件被转移到控制器,但我需要将其重定向到与选项 1 相关的新页面。在这里,我的意思是说,在提交索引后,下拉列表的两个值都应该将我引导到两个不同的页面.jsp。
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
String page = request.getParameter("option");
if(request.getParameter("option").equals("1")){
request.setAttribute("s1", page);
RequestDispatcher req = getServletContext().getRequestDispatcher("BrowseMovie.jsp");
req.forward(request, response);
}
else if(request.getParameter("option").equals("2")){
request.setAttribute("s2", page);
RequestDispatcher req = getServletContext().getRequestDispatcher("AddNew.jsp");
req.forward(request, response);
}
} finally {
out.close();
}
}
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Browse Page</title>
</head>
<body color="PINK">
<form action="Controller" method="post">
<h1>Welcome to our Movie Store</h1>
<br>
<p>Please make your selection below</p>
<br>
<select>
<option value="1" name="option">Browse Movies</option>
<option value="2" name="option">Add New Movie To Database</option>
<input type="submit" value="Send" name="Send"/>
</select>
</form>
</body>
如果您在用户选择下拉选项后立即尝试导航到另一个页面,则仅使用 jsp 或 servlet 是无法实现的。你需要添加一点JavaScript代码来做到这一点。
在 JavaScript 中,创建一个函数来按 tagname 或 id 获取表单元素,然后提交它。并通过另一个函数触发此函数,该函数将在用户选择下拉选项后立即触发。
通过这种方式,您可以实现您要求的事情:)