1、前台代码
$.ajax({
type : "POST",
url : "/activity",
dataType : "json",
success : function(data) {
alert("success");
console.info(data);
},
error : function(textStatus) {
alert("error");
console.info(msg);
}
});
2、后台代码
public void index() {
setAttr("activityList", Activity.dao.find("select * from activity order by id asc"));
renderJson();
}
折腾了一晚上终于可以用ajax访问JFinal,并成功接收到返回值。
还是看了@JFinal对一个问题文章的回复才搞定的。
@JFinal 说渲染 json 数据更简单,下面给出三个例子:
List<User> userList = User.dao.find("select * from user");
render("userList", userList);
以上代码会将 userList 这个对象全部转化为 json 并发送给 client。
setAttr("user", User.dao.findById(getParaToInt()));
setAttr("blogList", Blog.dao.find("select * from blog where user_id=?", getParaToInt());
renderJson();
以上代码会将 user 与 blogList对象转化为 json 并发送给client。
您还可以这样来:
renderHtml(JsonKit.toJson(blogList));
我在这个过程中遇到的问题包括:
1、试图对一个json格式的字符串使用renderJson,结果前台调用了error的function,并且在页面上打印了这个字符串。
2、原来写的ajax的url,修改后点击原来触发事件的button,新的url不生效,如果新建一个button去触发就可以生效,不知道是什么情况。