2015-11-25 140 views
0

我有5个jsp页面,每页都有表单。当我点击每个页面上的提交按钮时,表单被提交给一个servlet(Reg),并且这些值被存储在一个类(bean)中。我使用requestdispatcher从步骤2中的step1获取文本字段,同样step3中的step2值也是如此。如何在提交表单后从一个jsp页面获取值到两个不同的jsp页面?

现在我想在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

您需要将数据存储在会话范围。阅读更多关于它在这里:http://stackoverflow.com/q/16619015/1065197 –

+0

除会话范围之外是否有其他方式? – Dell

回答

0

而不是将它存储在会话范围中,您可以在每个表单中使用隐藏字段将值传递给下一个jsp。因此,第二步将是这个样子

<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脚本小程序已经过时,所以你应该考虑使用一个MVC框架,如Struts2的或Spring MVC

另一种方法是将值存储在localStorage这是由所有主流浏览器支持的,您可以存储至少5 MB。

或者你也可以使用cookies

+0

感谢您的建议!不过,我需要2页的值。步骤2以及步骤4。 – Dell

+0

如果您不想将它们存储在会话中,那么您需要提交每个请求的值。最简单的方法是将任何你想传入的'

'都插入,这样它们作为参数(GET)或http头文件(POST) – steven35

+0

传入url谢谢!我会这样做 – Dell

相关问题