在jsp界面里,勾上多个数据,然后根据勾选上的ID 查询出数据所有数据,这个在前后台怎写呢?

解决方案 »

  1.   

    String idArray = request.getParameterValues("id");
    String sql = "select * from xxx where id in(";
    for (int i = 0; i < idArray.length(); i++) {
      if (i == idArray.length() - 1) {
          sql += idArray[i] + ")";
          break;
      }
      sql += idArray[i] + ",";
    }
    //查询
      

  2.   

    忘了取的是数组应该是这样
    String[] idArray = request.getParameterValues("id");
    String sql = "select * from xxx where id in(";
    for (int i = 0; i < idArray.length(); i++) {
      if (i == idArray.length() - 1) {
          sql += idArray[i] + ")";
          break;
      }
      sql += idArray[i] + ",";
    }
    //查询 
      

  3.   


    后台里查询出来
    List<Object> list = //获取数据
    request.setAttribute("list",list);
    request.getRequestDispatcher("index.jsp").forword(request,response);//前台显示可以使用jstl
    <c:foreach items="${list}" var="obj">
    </c:foreach>
      

  4.   

    我的后台写成这样public List findById(String[] Ids ) {
    List<Menu> list1=new ArrayList<Menu>(); 

    StringBuffer sbSql = new StringBuffer();
    for (int i=0; i<Ids.length; i++) {
    sbSql.append("?");
    if (i < (Ids.length - 1)) {
    sbSql.append(",");
    }
    }
    sbSql.append("select id ,name,url from menu where id in (" + sbSql.toString()  +  ")");

    Connection conn = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null;
    //Book book = null;
    try {
    conn = DB.getConnection();
    pstmt = conn.prepareStatement(sbSql.toString());
    for (int i=0; i<Ids.length; i++) {
    pstmt.setString(i + 1, Ids[i]);
    }

    //setInt(1, id);
    rs = pstmt.executeQuery();
    if (rs.next()) {
    Menu menu = new Menu();
    // book.setId(rs.getInt(id));
    menu.setId(rs.getInt("id"));
    menu.setName(rs.getString("name"));
    menu.setUrl(rs.getString("url"));
    list1.add(menu);
    }
    }catch(SQLException e) {
    e.printStackTrace();
    }finally {
    DB.close(rs);
    DB.close(pstmt);
    DB.close(conn);
    }
    return list1;
    }
    但是前台有问题<%
    MenuDao menuDao = new MenuDao();
    String[] bookTypes = request.getParameterValues("bookType");
    for(int i = 0; i < bookTypes.length; i++)
           {
               String value = bookTypes[i];
               out.print(value);
                  out.print(bookTypes);
              menuDao.findById(bookTypes[i]);
         
    }
    提示findById出错   menuDao.findById(bookTypes[i]);  
      

  5.   

    你用checkbox标签不就行了  name都一样