【问题标题】:Getting value from one jsp to another jsp从一个jsp获取价值到另一个jsp
【发布时间】:2016-12-22 21:55:17
【问题描述】:

我开发了一个简单的网络应用程序。在一个 jsp 中,我使用 getattribute 和 set 属性从先前的 servlet 文件中获取值。我得到了这些值。但现在我想要从当前 jsp 到另一个 jsp 文件的值。我使用了 getattribute 和 setattribute,但值应显示为 null。

第一个jsp文件:

 <%@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>

【问题讨论】:

    标签: java jsp


    【解决方案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:

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

    【讨论】:

      【解决方案2】:

      在 HTML 隐藏控件中的 payment.jsp 中设置您想要访问的任何值,如下所示:-

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

      JSP 中的请求对象只跨越一个 HTTP 请求。因此,当您将请求转发到您的第一个 JSP 文件时,它是一个请求。但是当您提交表单并加载 payment.jsp 时,请求对象被清除,因为它是对服务器的新 HTTP 请求。

      【讨论】:

        【解决方案3】:

        为了访问你在第一个jsp中设置的值,你最好把这个值使用session。request.getSeession.setAttribute("amount",amount); 然后在第二个jsp中像这样访问它

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

        希望能解决你的问题

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-11-11
          • 2013-02-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多