【问题标题】:How to pass the values from one jsp page to another jsp without submit button?如何在没有提交按钮的情况下将值从一个 jsp 页面传递到另一个 jsp?
【发布时间】:2014-04-25 07:20:40
【问题描述】:

这是我的 demo1.jsp 页面,

<body>
    <form id="myform" name="myform" method="post" action="demo2.jsp">-->
    <input type="text"  name="usnername" />
    <input type="text" name="password"/>        
    <input type="submit" value="go" onclick="window.location.href='demo2.jsp'" />
</form>

这是我的 demo2.jsp

<body>
    <%
    String Uname=request.getParameter("usnername");
    String Usecret=request.getParameter("password");
    out.println(Uname);
    out.println(Usecret);
    %>

这里的代码运行良好,但是,如何在不使用 sumbit 按钮的情况下从 demo1 获取值到 demo2?即,&lt;input type="submit" value="go" onclick="window.location.href='demo2.jsp'" /&gt; bt 使用 input type="button" 我们可以发送值吗。

【问题讨论】:

  • 问题无法理解可以详细说明“没有sumbit button”吗?
  • 你想在哪个事件上提交表单?
  • 那么您想如何导航到 demo2.jsp?
  • 为什么不使用提交按钮?永远不要使用 GET 发送密码。使用表单,使用 POST 作为方法,并使用提交按钮。并学习使用 servlet,并避免在 JSP 中使用 scriptlet。
  • 我们可以通过放置

标签: jsp


【解决方案1】:

您只需要包含以下脚本。

<script language="javascript" type="text/javascript">  
        var xmlHttp  
        function showState(str)
        {
            //if you want any text box value you can get it like below line. 
            //just make sure you have specified its "id" attribute
            var name=document.getElementById("id_attr").value;
            if (typeof XMLHttpRequest != "undefined")
            {
              xmlHttp= new XMLHttpRequest();
            }
            var url="forwardPage.jsp";
            url +="?count1=" +str+"&count2="+name";
            xmlHttp.onreadystatechange = stateChange;
            xmlHttp.open("GET", url, true);
            xmlHttp.send(null);
        }
        function stateChange()
        {   
            if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
            {   
                document.getElementById("div_id").innerHTML=xmlHttp.responseText   
            }   
        }
      </script>

所以如果你得到了代码,让我告诉你,div_id 将是你必须显示结果的 div 标签的 id。 通过使用此代码,您将参数传递到另一个页面。无论进行何种处理,都会反映在 id 为“div_id”的 div 标签中。 您可以在任何控件的“onChange”事件或未提交的按钮的“onClick”事件上调用 showState(this.value)。 进一步的询问将不胜感激。

【讨论】:

    【解决方案2】:

    我正在尝试理解您的问题,您似乎希望第一个 JSP 中的值在第二个 JSP 中可用。

    1. 将 Java 代码 sn-ps 放在 JSP 文件中是非常不好的习惯,因此代码 sn-p 应该转到一个 servlet。

    2. 选择 servlet 中的值,即。

      String username = request.getParameter("username");
      String password = request.getParameter("password");
      
    3. 然后将值存储在 Session 中:

      HttpSession sess = request.getSession(); 
      sess.setAttribute("username", username);
      sess.setAttribute("password", password);
      
    4. 只要会话有效,这些值将在应用程序中的任何位置可用。

      HttpSession sess = request.getSession(false); //use false to use the existing session
      sess.getAttribute("username");//this will return username anytime in the session
      sess.getAttribute("password");//this will return password Any time in the session
      

    我希望这是您想知道的,但请不要在 JSP 中使用代码 sn-ps。您始终可以在 JSP 中使用 jstl 将值放入 JSP:

     ${username}//this will give you the username in the JSP
     ${password}// this will give you the password in the JSP
    

    【讨论】:

      【解决方案3】:

      注意:在 Test.jsp 中为 Form1.jsp 提供准确的路径详细信息 1.Test.jsp和2.Form1.jsp

      Test.jsp

      <body>
      <form method ="get" onsubmit="Form1.jsp">
      <input type="text" name="uname">
      <input type="submit" value="go" ><br/>
      </form>
      </body>
      

      Form1.jsp

      </head>
      <body>
      <% String name=request.getParameter("uname"); out.print("welcome "+name); %>  
      </body>
      

      【讨论】:

        【解决方案4】:

        您可以通过这两种方式中的任何一种来实现,在这样的表单按钮上触发onclick

        <form id="myform" name="myform" method="post" action="demo2.jsp">
            <input type="text"  name="usnername" />
            <input type="text" name="password"/>        
            <input type="button" value="go" onclick="submitForm" />
        </form>
        

        并使用javascript

                function submitForm() {                
                    document.forms[0].submit();
                    return true;
                }
        

        或者您也可以尝试Ajax 发布您的页面

        这里是链接jQueryAjax

        还有很好的启动示例using Ajaxhere

        希望对你有帮助!!

        【讨论】:

          【解决方案5】:

          我不完全知道你想做什么。但是你不能使用另一个表单的提交按钮来发送一个表单的数据。

          您可以使用会话或使用具有提交按钮的隐藏字段来做一件事。您可以使用 javascript/jquery 将值从第一个表单传递到第二个表单的隐藏字段。然后您可以提交表单。

          要不然你能做的最简单的就是使用会话。

          <form>
          <input type="text" class="input-text " value="" size="32" name="user_data[firstname]" id="elm_6">
          <input type="text" class="input-text " value="" size="32" name="user_data[lastname]" id="elm_7">
          </form>
          
          <form action="#">
          <input type="text" class="input-text " value="" size="32" name="user_data[b_firstname]" id="elm_14">
          <input type="text" class="input-text " value="" size="32" name="user_data[s_firstname]" id="elm_16">
          
          <input type="submit" value="Continue" name="dispatch[checkout.update_steps]">
          </form>
          
          
          $('input[type=submit]').click(function(){
          $('#elm_14').val($('#elm_6').val());
          $('#elm_16').val($('#elm_7').val());
          });
          

          这是它的 jsfiddle http://jsfiddle.net/FPsdy/102/

          【讨论】:

            【解决方案6】:

            你也可以试试这个方法

            HTML:

            <form action="javascript:next()" method="post">
            <input type="submit" value=Submit /></form>
            

            Javascript:

                  function next(){
                    //Location where you want to forward your values
                    window.location.href = "http://localhost:8563/And/try1.jsp?dymanicValue=" + values; 
                    }
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2014-04-17
              • 1970-01-01
              • 2011-07-21
              • 1970-01-01
              • 2019-08-30
              • 1970-01-01
              • 1970-01-01
              • 2015-04-04
              相关资源
              最近更新 更多