2012-05-10 9 views
0

jqueryでajaxについて学び始めています。私はたくさんのグーグルを試してみました。このテストコードを手に入れることができません。間違っている?何が起こるかは、ajaxがテーブルを作成しないということです。 usuarioDAO私はこのシンプルなajaxコードを動作させることはできません

@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()); 
} 

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

そして、それはそれについてです、あなたしてくださいすることができサーブレット

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

JSP:ここに私のコードです私は何をしているのか教えてください間違っている?こことして

+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が生成された)、更新されたコードを試してください。 findはXMLの記述ではなく、既存のDOM要素でのみ動作するようです。 http://stackoverflow.com/questions/562283/jquery-find-doesnt-return-data-in-ie-but-does-in-firefox-and-chrome – Matzi

関連する問題