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