2013-10-16 52 views
0

我想填充在頁面加載,但它不工作如何填充在頁面加載事件選擇框,使用JSP和Ajax

這裏選擇框是我的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> 

MYDAO

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;    
} 

Servlet的

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

回答

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)您的成功ajex。

 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); 
    }, 
相關問題