如何将requestdispatcher发送到两个不同的jsp页面路径?

时间:2014-07-11 11:01:40

标签: java jsp servlets javabeans

我已经使用JSP,bean和JDBC(MVC)

创建了一个注册表单

在我的servlet中,我有以下代码..

        if ("editRegister".equalsIgnoreCase(action)) {
        StudentBean user = new StudentBean();

     user.setName(Name);
     user.setStudID(ID);
     user.setCourse(Course);
     user.setEmail(Email);
            db.addRecord(Name, ID, Name, Email);
             set the result into the attribute
            request.setAttribute("StudentBean", user);
            RequestDispatcher rd;
            rd = getServletContext().getRequestDispatcher("/DisplayRegistry.jsp");
            rd = getServletContext().getRequestDispatcher("/UpdateRegistry.jsp");
            rd.forward(request, response);

基本上,我想将requestDispatcher发送到两个jsp页面,这样我就可以在表单中显示另一个带有预定义值的表单。

e.g。

<jsp:useBean id="StudentBean" scope="request" class="ict.bean.StudentBean"/>


 <% String email = StudentBean.getEmail() != null ? StudentBean.getEmail() : ""; %>
 <form method="get" action="updateregistry">
 <input type="text" name="email" maxlength="10" size="15" value="<%=email%>">
 </form>

然而,问题是它显示null而不是值,因为requestDispatcher只发送到一个路径。

1 个答案:

答案 0 :(得分:0)

你有两个前锋的练习毫无意义

rd = getServletContext().getRequestDispatcher("/DisplayRegistry.jsp");
rd = getServletContext().getRequestDispatcher("/UpdateRegistry.jsp")

相反,您可以将值设置为session,以便您可以在两个页面中访问它(在整个应用程序会话中)。

所以,

HttpSession session=request.getSession(false);
session.setAttribute("StudentBean", user);

您可以从会话中获取值并拥有一个请求调度程序

希望这会有所帮助!!