2012-05-10 58 views
0

我开始学习与jQuery的Ajax,我试了很多谷歌搜索,我不能得到这个测试代码工作,你能告诉我什么是我做错了?会发生什么是ajax不会创建表。这里是我的代码:我不能得到这个简单的Ajax代码工作

的JSP:

<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <script type="text/javascript" src="js/jquery.js"></script> 
    <title>My First Web App</title> 
    <script type="text/javascript"> 
     $(document).ready(function{ 
      $.ajax({ 
       type: "GET", 
       url: "users", 
       dataType: "xml", 
       success: function(xml){ 
        $("#content").append("<table>"); 
        $(xml).find("user").each(function(){ 
         var firstName = $(this).find("firstName").text(); 
         var lastName = $(this).find("lastName").text(); 
         var password = $(this).find("password").text(); 
         var email = $(this).find("email").text(); 
         $("#content").append("<tr>"); 
         $("#content").append("<td>" + firstName + "</td>"); 
         $("#content").append("<td>" + lastName + "</td>"); 
         $("#content").append("<td>" + password + "</td>"); 
         $("#content").append("<td>" + email + "</td>"); 
         $("#content").append("</tr>"); 
        }); 
        $("#content").append("</table>"); 
       } 
      }); 
     }); 
    </script> 
</head> 
<body> 
    <div id="content"></div> 
</body> 

该servlet:

@WebServlet("/users") 
public class users extends HttpServlet { 
private static final long serialVersionUID = 1L; 

/** 
* @see HttpServlet#HttpServlet() 
*/ 
public users() { 
    super(); 
    // TODO Auto-generated constructor stub 
} 

/** 
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
*/ 
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    response.setContentType("text/xml;charset=UTF-8"); 
    usuarioDAO uDAO = new usuarioDAO(); 
    response.getWriter().write(uDAO.getAllUsers()); 
} 

usuarioDAO:

public String getAllUsers() 
{ 
    String xml = ""; 
    xml += "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; 
    xml += "<users>"; 
    try 
    { 
     getAllUsers = con.prepareStatement("SELECT * FROM users"); 
     synchronized(getAllUsers) 
     { 
      ResultSet res = getAllUsers.executeQuery(); 
      while (res.next()) 
      { 
       xml += "<user>"; 
       xml += "<firstName>" + res.getString("firstName") + "</firstName>"; 
       xml += "<lastName>" + res.getString("lastName") + "</lastName>"; 
       xml += "<password>" + res.getString("password") + "</password>"; 
       xml += "<email>" + res.getString("email") + "</email>"; 
       xml += "</user>"; 
      } 
     } 
     getAllUsers.close(); 
    } 
    catch (Exception ex) 
    { 
     System.out.println(ex); 
    } 
    xml += "</users>"; 
    return xml; 
} 

而且仅此而已,你能不能请告诉我我做了什么错了吗?

+5

定义 “不工作”。它以什么方式失败?是否有某种错误?例外?代码中的哪一点与预期行为有偏差?在这一点上,预期与观察行为是什么?那时相关对象的状态是什么? – David

+0

你确定你的ajax调用的“url”是正确的吗? – MilkyWayJoe

+0

也许你忘了在这里调用response.close()或response.flush()?如果它不会帮助,请您发布一些额外的细节,可能是服务器日志或萤火虫日志? –

回答

0

同样的问题如下:

Using .after() to add html closing and open tags

您尝试添加表标签为纯文本,但它不工作。取而代之的是,首先在页面上添加一个完整的表格(也是tr)标签,然后在其中添加其他元素。全部元素,而不仅仅是部分!

更新

事情是这样的:

   $("#content").append("<table id='table'></table>"); 
       var i = 0; 
       $("#existingElement").html(content); 
       $("#existingElement").find("user").each(function(){ 
        var firstName = $(this).find("firstName").text(); 
        var lastName = $(this).find("lastName").text(); 
        var password = $(this).find("password").text(); 
        var email = $(this).find("email").text(); 
        var rowid = "row"+id; 
        $("#table").append("<tr id='"+rowid+"'></tr>"); 
        $("#"+rowid).append("<td>" + firstName + "</td>"); 
        $("#"+rowid).append("<td>" + lastName + "</td>"); 
        $("#"+rowid).append("<td>" + password + "</td>"); 
        $("#"+rowid).append("<td>" + email + "</td>"); 
       }); 
+0

我这样做,它仍然无法工作... – hectorviov

+0

如果一切正常(XML生成),然后尝试更新的代码。看来只能在现有的DOM元素中找到,而不是在xml描述中。 http://stackoverflow.com/questions/562283/jquery-find-doesnt-return-data-in-ie-but-does-in-firefox-and-chrome – Matzi

相关问题