2013-03-10 121 views
1

我開發了simeple web應用程序。在一個jsp中,我使用getattribute和set屬性從preivous servlet文件中獲取值。我獲得了這些值。但現在我想從目前的jsp到另一個jsp文件的值。使用我使用的getattribute和setattribute,但值應顯示爲空。從一個jsp獲取價值到另一個jsp

firstjsp文件:

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
      "http://www.w3.org/TR/html4/loose.dtd"> 
      <%@ page import="javax.servlet.http.*" %> 

      <html> 
      <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title>JSP Page</title> 
     </head> 
     <body> 
    <form action="payment.jsp" method="POST"> 
     <h1>Confirmation</h1> 
     <% 
       Integer amount=(Integer)request.getAttribute("amt"); 
       String service=(String)request.getAttribute("service"); 
       String month=(String)request.getAttribute("month"); 
       Integer day=(Integer)request.getAttribute("day"); 
        String time=(String)request.getAttribute("time"); 
        String city=(String)request.getAttribute("city"); 
        out.println("<center>"); 
        out.println("<table><tr>"); 
        out.println("<td><h2>Service:"+service+"</td></tr>"); 
        out.println("<tr><td><h2>Month:"+month+"</td></tr>"); 
        out.println("<tr><td><h2>Date:"+day+"</td></tr>"); 
        out.println("<tr><td><h2>Time:"+time+"</td></tr>"); 
        out.println("<tr><td><h2>City:"+city+"</td></tr>"); 
        out.println("<tr><td><h2>Total Amount:Rs."+amount+"</td></tr>");      
        out.println("</center>"); 
        request.setAttribute("amt",amount); 







     %> 


     <center> 
      <input type="submit" value="Confirm"></input> 
     </center> 

    </form> 
     </body> 
     </html> 

payment.jsp:

  <html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title>JSP Page</title> 
</head> 
<body> 
    <h2>Select bank</h2> 
    <%!Integer money;%> 
    <% 
    if(request.getAttribute("amt")!=null) 
     { 
    money=(Integer) request.getAttribute("amt"); 
    out.println(""+money); 
    } 
    %> 
     </body> 
     </html> 

回答

1

設定您想要在payment.jsp如下訪問HTML隱藏控制的任何值: -

<form action="payment.jsp" method="POST"> 
    <input type="hidden" name="amt" value="<%= amount%>" /> 
</form> 

請求JSP中的對象只跨越一個HTTP請求。因此,當您將請求轉發給第一個JSP文件時,這是一個請求。但是當你提交表單和payment.jsp加載時,請求對象被清除,因爲它是一個到服務器的新HTTP請求。

1

您可以使用session而不是request隱式對象。

<html> 
       <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>JSP Page</title> 
      </head> 
      <body> 
     <form action="payment.jsp" method="POST"> 
      <h1>Confirmation</h1> 
      <% 
        Integer amount=(Integer)request.getAttribute("amt"); 
        String service=(String)request.getAttribute("service"); 
        String month=(String)request.getAttribute("month"); 
        Integer day=(Integer)request.getAttribute("day"); 
         String time=(String)request.getAttribute("time"); 
         String city=(String)request.getAttribute("city"); 
         out.println("<center>"); 
         out.println("<table><tr>"); 
         out.println("<td><h2>Service:"+service+"</td></tr>"); 
         out.println("<tr><td><h2>Month:"+month+"</td></tr>"); 
         out.println("<tr><td><h2>Date:"+day+"</td></tr>"); 
         out.println("<tr><td><h2>Time:"+time+"</td></tr>"); 
         out.println("<tr><td><h2>City:"+city+"</td></tr>"); 
         out.println("<tr><td><h2>Total Amount:Rs."+amount+"</td></tr>");      
         out.println("</center>"); 
         session.setAttribute("amt",amount);//Changed to session 







      %> 


      <center> 
       <input type="submit" value="Confirm"></input> 
      </center> 

     </form> 
      </body> 
      </html> 

payment.jsp:爲了訪問您的第一個JSP設置的值

<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title>JSP Page</title> 
</head> 
<body> 
    <h2>Select bank</h2> 
    <%!Integer money;%> 
    <% 
    if(session.getAttribute("amt")!=null)//changed to session 
     { 
    money=(Integer) session.getAttribute("amt");//changed to session 
    out.println(""+money); 
    session.removeAttribute("amt"); 
    } 
    %> 
     </body> 
     </html> 
0

,你必須更好地把以這種方式使用會話的值。 request.getSeession.setAttribute("amount",amount); 然後在第二個JSP訪問它像這樣

<form> 
<input type="hidden" value="<%=session.getAttribute("amount")%>"/> 
<form> 

我希望它解決您的問題