我有5个jsp页面,每页都有表格。当我单击每个页面上的提交按钮时,表单将提交给servlet(Reg),值将存储在类(bean)中。我使用requestdispatcher从step2中的step1获取文本字段,并在step3中使用step2值,依此类推。
现在我想在step4.jsp中显示textfields dob和regDate(在我的step1.jsp中)的值。我怎么做?下面是我编写的代码示例。
step1.jsp
<div>
<form name="step1">
<input type="text" name="dob" id="dob">
<input type="text" name="regDate" id="regDate">
<input type="submit" name="step1nxt" value="submit">
</form>
</div>
Step4.jsp
<div>
<form name="step4">
<input type="text" name="dod" id="dod">
<input type="submit" name="step4nxt" value="submit">
</form>
</div>
Reg.java(Servlet)
if(step1nxt!=null){
//call function to set values in bean
request.getRequestDispatcher("step2.jsp").forward(request,response);
}
if(step2next!=null){
//call function to set values
request.getRequestDispatcher("step3.jsp").forward(request,response);
}
//similar 'if' statement for other pages
if(step4.nxt!=null){
//call function to set values
request.getRequestDispatcher("step5.jsp").forward(request,response);
}
bean.java
String dob;
String regDate;
//getters and setters
//function to setvalues of dob and regDate
//function to print the values
答案 0 :(得分:0)
您可以使用每个表单中的隐藏字段将值传递给下一个jsp,而不是将其存储在会话范围中。所以step2看起来像这样
<div>
<form name="step2">
<input type="hidden" value='<%=request.getParameter("dob")%>' name="dob" id="dob"/>
<input type="hidden" value='<%=request.getParameter("regDate")%>' name="regDate" id="regDate"/>
<input type="submit" name="step1nxt" value="submit">
</form>
</div>
请注意,不推荐在jsp中使用scriptlet,因此您应该考虑使用Struts2或Spring MVC等MVC框架
另一种方法是将值存储在所有主流浏览器都支持的localStorage中,并且您可以存储至少5 Mb。
或者您也可以使用cookies