是否可以将javascript值分配给html并使用Jsp来获取值?

时间:2011-02-19 09:08:53

标签: java javascript html arrays servlets

<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变量中获取值

并在数组中指定值,例如<input type="hidden" name="test[0]" value=i />

然后,在服务器端,

<%! 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来获取值?

或者如何修改代码?

3 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

在您的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"));
%>

答案 2 :(得分:0)

您是一名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;
        }
    }