2012-02-16 47 views
0

我想发送一个新的用户名添加到我的jsp上的多个表之一。每个表都在一个jspf文件中定义并包含在jsp中。我试图使用jQuery.ajax()将名称发送给我的Spring控制器(然后执行所有中间和后面的层工作)。当Spring Controller返回时,我希望一个表自动更新。我不想刷新整个页面。问题使用jQuery ajax和弹簧控制器刷新jspf

我该怎么做?我从Spring Controller返回什么?我bascially需要刷新一个表(这是在一个单一的jspf文件)。

这里是我使用AJAX调用的例子:

$.ajax('/path/addUser.html', { 
    type: "POST", 
    data: { "userName" : "bob" }, 
    success: function(data) { 
    // do what if anything? 
    }, 
    error: function(jqXHR, textStatus, errorThrown) { 
    Ext.MessageBox.alert('Error', errorThrown); 
    } 
}); 

回答

1

返回用户名和表名来自控制器(如果有多个表)。然后使用Jquery只需将用户名添加到相应的表。
在控制器中将值放入JSON对象中,可以使用Json-simple对json对象中的值进行编码/解码。将@Responsebody作为控制器的返回类型以避免刷新页面/视图。 在控制器

JSONObject json = new JSONObject(); 
json.put("userName", user_name); 
json.put("tableName",table_name); 
return json; 

在JS解码JSON值和使用jQuery喜欢,你可以使用

$(tableName + "tr:last").after(userName); 
    $.ajax('/path/addUser.html', { 
    type: "POST", 
    data: { "userName" : "bob" }, 
    success: function(data) { 
     $(data.tableName + "tr:last").after(data.userName); 
    }, 

});