0

我想在页面加载时填充选择框,但它不起作用

这是我的html代码文件1

<button id="edit-btn" onclick="popupwindow('edituser.jsp','Add new user',500,300)">Edit user</button>

文件2

<script>
   $(document).ready(function(){

          $.ajax({
                        type: "POST",
                        url: "${pageContext.request.contextPath}/MyServlet",
                        data: "action=list",
                        success: function(data){ 
                          alert("success");
                        },
                        error: function(jqXHR, textStatus, errorThrown) { 
                            alert(errorThrown)
                        }
          });
   }); 
  </script>

<select name="currentusername" id="current-username" style="width:157px;">
</select>

米道

  public List getAllUserNames(){       
    List<UserBean> users = new ArrayList<UserBean>();
    try {
        String sql = "SELECT username FROM users ";
        PreparedStatement ps = connection.prepareStatement(sql);
        ResultSet rs = ps.executeQuery();
        if (rs != null) {
        while (rs.next()) {
             UserBean userBean = new UserBean();
             System.out.println(rs.getString("username"));
             userBean.setUsername(rs.getString("username"));

             users.add(userBean);
        }
        }
        else{
            System.out.println("No users");
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return users;            
}

小服务程序

 if(action.equalsIgnoreCase("list")){
         System.out.println("list");
         request.setAttribute("users", dao.getAllUserNames());          
    }
4

1 回答 1

1

步骤:1)将返回的列表转换为 json。
使用众所周知的库,如 gson、jackson、json.jar。
https://sites.google.com/site/gson/gson-user-guide
http://wiki.fasterxml.com/JacksonInFiveMinutes
2)将返回的字符串写入响应。
3) 将内容类型设置为 application/json。
4)在你成功的 ajax 。

     success: function(data){ 
       var html ="";
       var JsonArray = JSON.parse(data);
       for(i=0; JsonArray .length >i; i++){
           html +="<option value='"+JsonArray[i].username+"'>"+JsonArray[i].username+"</option>";
       }
     $("#current-username").html(html);
    },
于 2013-10-16T13:09:19.147 回答