0

jquery を使用して 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>

サーブレット:

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

ウスアリオDAO:

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

それだけです。何が間違っているのか教えてください。

4

1 に答える 1

0

ここと同じ問題:

.after() を使用して HTML の終了タグと開始タグを追加する

テーブル タグを純粋なテキストとして追加しようとしていますが、機能していません。その代わりに、最初に完全なテーブル (同じく 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>");
                });
于 2012-05-10T16:04:14.417 に答える