如何在提交表单后从一个jsp页面获取值到两个不同的jsp页面?

时间:2015-11-25 17:28:54

标签: java html jsp servlets javabeans

我有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

1 个答案:

答案 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