Условное использование RequestDispatcher для отправки одного и того же Java-объекта на несколько страниц JSP
Пожалуйста, потерпите меня, так как я новичок в JSP. Заранее благодарю за помощь; Я очень ценю это.
ФОН
Я пытаюсь создать веб-приложение, которое "запоминает" определенные объекты Java во время сеанса входа пользователя. В настоящее время у меня есть сервлет, который использует RequestDispatcher для отправки объекта на страницу JSP через его метод doPost.
Вот doPost сервлета:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String strBook = "Test Book";
// Send strBook to the next jsp page for rendering
request.setAttribute("book", strBook);
RequestDispatcher dispatcher = request.getRequestDispatcher("sample.jsp");
dispatcher.include(request, response);
}
Sample.jsp получает объект strBook и обрабатывает его. Тело sample.jsp выглядит так:
<body>
<%
// Obtain strBook for rendering on current page
String strBook = (String) request.getAttribute("book");
/*
// TODO: A way to conditionally call code below, when form is submitted
// in order for sample2.jsp to have strBook object.
RequestDispatcher dispatcher = request.getRequestDispatcher("sample2.jsp");
dispatcher.include(request, response);
*/
%>
<h1> Book: </h1>
<p> <%=strBook%> </p>
<form action="sample2.jsp" method="post">
<input type="submit" id="buttonSubmit" name="buttonSubmit" value="Buy"/>
</form>
</body>
ПРОБЛЕМА
Как мне взять объект strBook из sample.jsp и отправить его в sample2.jsp, КОГДА нажимается кнопка отправки (чтобы объект strBook можно было использовать в sample2.jsp)?
В настоящее время тело sample2.jsp выглядит так, а strBook внутри имеет значение null:
<body>
<%
// Obtain strBook for rendering on current page
String strBook = (String) request.getAttribute("book");
%>
<h1> Book: </h1>
<p> <%="SAMPLE 2 RESULT " + strBook%> </p>
</body>
1 ответ
Вы можете передать его в качестве параметра для следующего JSP.
Sample1.jsp
<form action="sample2.jsp" method="post">
<input type="submit" id="buttonSubmit" name="buttonSubmit" value="Buy"/>
<input type="hidden" name="book" value="<%=strBook%>"/>
</form>
Sample2.jsp
<%
// Obtain strBook for rendering on current page
String strBook = (String) request.getParameter("book");
%>
<h1> Book: </h1>
<p> <%="SAMPLE 2 RESULT " + strBook%> </p>