我已经使用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只发送到一个路径。
答案 0 :(得分:0)
你有两个前锋的练习毫无意义
rd = getServletContext().getRequestDispatcher("/DisplayRegistry.jsp");
rd = getServletContext().getRequestDispatcher("/UpdateRegistry.jsp")
相反,您可以将值设置为session
,以便您可以在两个页面中访问它(在整个应用程序会话中)。
所以,
HttpSession session=request.getSession(false);
session.setAttribute("StudentBean", user);
您可以从会话中获取值并拥有一个请求调度程序
希望这会有所帮助!!