我需要在一个页面里提供批量下载功能,用户通过“全选”、“反选”、“取消选择”等按钮实现对items的选择
我可以通过JavaScript获得用户选择的item的id,但是如何将这些id通过一个数组传递给jsp呢?

解决方案 »

  1.   


    <HTML>
    <!--
      Copyright 2004 The Apache Software Foundation  Licensed under the Apache License, Version 2.0 (the "License");
      you may not use this file except in compliance with the License.
      You may obtain a copy of the License at      http://www.apache.org/licenses/LICENSE-2.0  Unless required by applicable law or agreed to in writing, software
      distributed under the License is distributed on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      See the License for the specific language governing permissions and
      limitations under the License.
    --><BODY bgcolor="white">
    <FORM TYPE=POST ACTION=checkresult.jsp>
    <BR>
    <font size=5 color="red">
    Check all Favorite fruits: <br><input TYPE=checkbox name=fruit VALUE=apples> Apples <BR>
    <input TYPE=checkbox name=fruit VALUE=grapes> Grapes <BR>
    <input TYPE=checkbox name=fruit VALUE=oranges> Oranges <BR>
    <input TYPE=checkbox name=fruit VALUE=melons> Melons <BR>
    <br> <INPUT TYPE=submit name=submit Value="Submit"></font>
    </FORM>
    </BODY>
    </HTML><html>
    <!--
      Copyright 2004 The Apache Software Foundation  Licensed under the Apache License, Version 2.0 (the "License");
      you may not use this file except in compliance with the License.
      You may obtain a copy of the License at      http://www.apache.org/licenses/LICENSE-2.0  Unless required by applicable law or agreed to in writing, software
      distributed under the License is distributed on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      See the License for the specific language governing permissions and
      limitations under the License.
    --><body bgcolor="white">
    <font size=5 color="red">
    <%! String[] fruits; %>
    <jsp:useBean id="foo" scope="page" class="checkbox.CheckTest" /><jsp:setProperty name="foo" property="fruit" param="fruit" />
    <hr>
    The checked fruits (got using request) are: <br>
    <%
            fruits = request.getParameterValues("fruit");
    %>
    <ul>
    <%
        if (fruits != null) {
              for (int i = 0; i < fruits.length; i++) {
    %>
    <li>
    <%
                  out.println (util.HTMLFilter.filter(fruits[i]));
              }
            } else out.println ("none selected");
    %>
    </ul>
    <br>
    <hr>The checked fruits (got using beans) are <br><%
                    fruits = foo.getFruit();
    %>
    <ul>
    <%
        if (!fruits[0].equals("1")) {
              for (int i = 0; i < fruits.length; i++) {
    %>
    <li>
    <%
                      out.println (util.HTMLFilter.filter(fruits[i]));
              }
            } else out.println ("none selected");
    %>
    </ul>
    </font>
    </body>
    </html>
      

  2.   

    若只是想传递一个数组 作为参数操作数据库呢。
    如:// 控制删除
    function delItem(){
    var selectFlags = document.getElementsByName("selectFlag") ;
    var flag = false ;
    var len = selectFlags.length ;
    //定义数组存放物料代码
    var itemNos = new Array(len) ; 
    for( var i=0; i<len; i++){
    if (selectFlags[i].checked){
    flag = true ;
    itemNos[i] = selectFlags[i].value ;
    }
    }
    if (!flag){
    alert("请选中需要删除的物料!") ;
    return ;
    }
    alert(itemNos) ;

    if (confirm("是否真的删除?")){
    window.self.location = "DelItemServlet?itemNos="+itemNos ;
    }
    }
    这样传递数组,在取参数就会考虑到逗号问题,如何传才好呢