【问题标题】:How to pass an array created in javascript to another jsp and then use that array in a java function on that jsp?如何将在javascript中创建的数组传递给另一个jsp,然后在该jsp的java函数中使用该数组?
【发布时间】:2015-08-31 04:00:07
【问题描述】:

这是我拥有的一个脚本,我希望能够将数组“playernames”传递给另一个 .jsp 上的 java 函数。我想知道如何将该数组传递到另一个页面,然后为我的 java 函数检索它。

<script>
function getPlayerNames() {
      var selected = document.querySelectorAll("#selected-players > tr > td");
      var playernames = [];
      for(var i=0; i<selected.length; ++i){
         var id = selected[i].getAttribute('id');
         if (id.indexOf('Player')>-1) {
             playernames.push(selected[i].textContent);
         }

      }  
}
</script>

编辑:

<td style="vertical-align: top;"><button   onclick="getPlayerNames()"id="generate">Generate</button><br></td>

<input type="hidden" id="players" />

<script>
function getPlayerNames(){
      var selected = document.querySelectorAll("#selected-players > tr >    td");
      var playernames = [];
      for(var i=0; i<selected.length; ++i){
         var id = selected[i].getAttribute('id');
         if (id.indexOf('Player')>-1) {
             playernames.push(selected[i].textContent);
         }

      }
      document.getElementById("players").values=playernames;
      document.getElementById("players").submit();
      window.location.replace("lineups.jsp");   
}</script>

其他jsp

<%String[] players = request.getParameterValues("players");%>

【问题讨论】:

    标签: javascript java html jsp


    【解决方案1】:

    您需要在表单标签内设置隐藏字段,并设置如下 id 和 action 属性。

    <td style="vertical-align: top;"><button   onclick="getPlayerNames()"id="generate">Generate</button><br></td>
    
    <form id="playerNames" action="Url"> // In action give the Url of the jsp page you want to send the values to lineups.jsp in your case I guess.
    <input type="hidden" id="players" name="players" />
    </form>
    
    <script>
    function getPlayerNames(){
          var selected = document.querySelectorAll("#selected-players > tr >    td");
          var playernames = [];
          for(var i=0; i<selected.length; ++i){
             var id = selected[i].getAttribute('id');
             if (id.indexOf('Player')>-1) {
                 playernames.push(selected[i].textContent);
             }
    
          }
    
             document.getElementById("players").value=playernames;
          document.getElementById("playerNames").submit();
    }</script>
    

    【讨论】:

    • 我已将数组分配给隐藏表单。如果假设我有一个将我发送到另一个 jsp 的按钮,我如何将该隐藏表单发送到另一个 jsp?
    • 为了更好地演示如何以及何时提交表单,您需要发布表单代码以及如何设置隐藏表单字段值。
    • 不客气!但是你是不是忘记了什么??也许将此帖子标记为答案! :)
    • 这里是新的。不知道该怎么做。
    【解决方案2】:

    1) 将数组字符串化,然后分配给隐藏字段。
    参考:Javascript Hidden Input Array
    2) 将表单中的隐藏字段提交给服务器。

    <input type="hidden" id="hiddenArrayField"/>
    document.getElementById("hiddenArrayField").value=yourStringifyArrayValue;
    

    3) 在服务器上,您可以将其作为请求的一部分,即在下一个 jsp 上,您可以将此值作为请求参数检索。

      <%= request.getParameter("hiddenArrayField")%>
    

    【讨论】:

    • 在这种情况下您能否编辑我的答案,还需要哪些步骤?
    • 第一部分代码不是演示第 1 部分吗?将表单中的隐藏字段提交到服务器的代码是什么?
    猜你喜欢
    • 2015-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多