【问题标题】:Is it possible to assign javascript value to html and use Jsp to get the value?是否可以将javascript值分配给html并使用Jsp来获取值?
【发布时间】:2011-06-30 07:28:13
【问题描述】:
<html>
<body>

<form action="javascript.jsp">
   <script type="text/javascript">
   var i = 11;
   var j = 12;
   <input type="hidden" name="test[0]" value=i />
   <input type="hidden" name="test[1]" value=j />
   </script>
   <input type="image" src="submit.jpg" />
</form>   

</body>
</html>

我想从 JavaScript 变量中获取值

并在数组中赋值,如&lt;input type="hidden" name="test[0]" value=i /&gt;

然后,在服务器端,

<%! String[] getValue; %>
<%
       getValue = request.getParameterValues("test");
       if (getValue != null) 
       {
          for (int i = 0; i < getValue.length; i++) 
          {
             out.println ("<b>"+getValue[i]+"<b>");
          }
       }
%>

但是好像不行。

那么,是否可以将javascript值赋给html并使用Jsp获取值?

或者如何修改代码?

【问题讨论】:

    标签: java javascript html arrays servlets


    【解决方案1】:

    在 javascript 中使用 getElementById 方法通过元素的 id 来定位元素。并设置它们的 value 属性。还要确保在页面加载后执行代码。

    示例:

    <html>
    <body>
    <form action="javascript.jsp">
       <input type="hidden" id="test0" />
       <input type="hidden" id="test1" />
       <script type="text/javascript">
           var i = 11;
           var j = 12;
    
           window.onload = function()
           {
               document.getElementById("test0").value = i;
               document.getElementById("test1").value = j;
           };
       </script>
       <input type="image" src="submit.jpg" />
    </form>   
    </body>
    </html>
    

    【讨论】:

      【解决方案2】:

      在您的 html 页面上:

          <form action="javascript.jsp">
         <input type="hidden" name="test0" id="test0" />
         <input type="hidden" name="test1" id="test1" />
         <input type="image" src="submit.jpg" />
      </form>
      

      还有更远的地方:

         <script type="text/javascript">
             var i = 11;
             var j = 12;
             document.getElementById("test0").value=i;
             document.getElementById("test1").value=j;
         </script>
      

      然后您的 javascript.jsp 可以读取此参数:

      <%
      out.println(request.getParameter("test0"));
      out.println(request.getParameter("test1"));
      %>
      

      【讨论】:

        【解决方案3】:

        您是一名 PHP 开发人员。在 PHP 中,参数语法 name[] 会自动转换为 PHP 数组。这在 HTTP 中不是标准的,而 JSP/Servlet(以及许多其他语言/API)没有这个“特性”。

        你有两个选择:

        1. 只要给他们都一样的名字。

          <input type="hidden" name="test" value="one" />
          <input type="hidden" name="test" value="two" />
          <input type="hidden" name="test" value="three" />
          

          这样您就可以像往常一样使用getParameterValues()(排序与HTML DOM树中出现的元素相同,这是根据HTTP和HTML规范)

          String[] tests = request.getParameterValues("test");
          
        2. 通过getParameter() 使用文字名称test[0]test[1] 等来访问它们。

          List<String> tests = new ArrayList<String>();
          
          for (int i = 0; i < Integer.MAX_VALUE; i++) {
              String test = request.getParameter("test[" + i + "]");
          
              if (test != null) {
                  tests.add(test);
              } else {
                  break;
              }
          }
          

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-10-05
          • 2022-09-23
          • 1970-01-01
          • 2020-12-16
          • 2023-04-07
          • 2021-09-12
          • 2011-08-08
          • 1970-01-01
          相关资源
          最近更新 更多