JFinal使用ノート5-AJAX方式でJFinalにアクセス

1404 ワード

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データをレンダリングするのが簡単だと言っていますが、次の3つの例を示します.
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を作成してトリガすれば有効になります.どんな状況なのか分かりません.