Struts 2とajax【未完成】
以前はプロジェクトで毎回ajaxを直接使って非同期処理をしていましたが、今は考えを整理する必要があると思います.
1、ページjs要求
url:要求された処理アドレス
data:入力パラメータ
DataType:URL戻り値はJSON形式で渡され、ページで解析する際にJSON形式で表示されます
type:コミット方式post/get
async:デフォルトの設定値はtrueです.この場合、ajaxが要求を送信すると、server側が戻るのを待つ間、フロントはajaxブロックの後ろのスクリプトを実行し続け、server側が正しい結果を返すまでsuccessを実行しません.つまり、このとき実行されるのは2つのスレッドです.ajaxブロックリクエスト後のスレッドとajaxブロック後のスクリプト(別のスレッド)
success:ajaxリクエストが正常に処理されたコールバック関数、コールバック関数のdataパラメータがjsonオブジェクト
error:ajaxリクエスト失敗処理のコールバック関数
ajaxのコールバック関数とcomplete
2、Strutsのxmlプロファイル
3、actionクラス
public class RyAction extends ActionSupport{
private List list; public List getList() { return list; }
@Override public String execute() { list= new ArrayList(); list.add("a");
list.add("b");
list.add("c");
return SUCCESS; } }
上記のコードによればajaxのsuccessのdataはactionにget,set変数を明記したjson列をすべて取得する.
xmlでこのように書く場合の別の構成もあります
list
ではJSONタイプ結果のパラメータに「root」パラメータを入れることでJSON結果を出力するルートを設定できますが、上記の場合、「root」パラメータがなければ、出力は「{"list":[[[[[[],[b],[c]]]]}」となり、加算すると「[[[[[[a],[b],[c]]]]]」となります.
1、actionで定義された変数がjsonでrootが構成されていない場合、error関数が実行されるかどうか注意する必要があります.
2、ページに書かれているdataTypeがjsonでない場合、パッケージがjsonのパッケージにプロファイルを入れて、項目の内容と区別する必要があるかどうか
3、actionのgetとsetがすべて必要かどうか
1、ページjs要求
$.ajax({
url:"addRy.action",
data:{"xm":" "},
dataType:"json",
type:"post",
async: false,
success:function(data){
alert(data);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("error");
}
});
url:要求された処理アドレス
data:入力パラメータ
DataType:URL戻り値はJSON形式で渡され、ページで解析する際にJSON形式で表示されます
type:コミット方式post/get
async:デフォルトの設定値はtrueです.この場合、ajaxが要求を送信すると、server側が戻るのを待つ間、フロントはajaxブロックの後ろのスクリプトを実行し続け、server側が正しい結果を返すまでsuccessを実行しません.つまり、このとき実行されるのは2つのスレッドです.ajaxブロックリクエスト後のスレッドとajaxブロック後のスクリプト(別のスレッド)
success:ajaxリクエストが正常に処理されたコールバック関数、コールバック関数のdataパラメータがjsonオブジェクト
error:ajaxリクエスト失敗処理のコールバック関数
ajaxのコールバック関数とcomplete
2、Strutsのxmlプロファイル
3、actionクラス
public class RyAction extends ActionSupport{
private List
@Override public String execute() { list= new ArrayList
list.add("b");
list.add("c");
return SUCCESS; } }
上記のコードによればajaxのsuccessのdataはactionにget,set変数を明記したjson列をすべて取得する.
xmlでこのように書く場合の別の構成もあります
ではJSONタイプ結果のパラメータに「root」パラメータを入れることでJSON結果を出力するルートを設定できますが、上記の場合、「root」パラメータがなければ、出力は「{"list":[[[[[[],[b],[c]]]]}」となり、加算すると「[[[[[[a],[b],[c]]]]]」となります.
1、actionで定義された変数がjsonでrootが構成されていない場合、error関数が実行されるかどうか注意する必要があります.
2、ページに書かれているdataTypeがjsonでない場合、パッケージがjsonのパッケージにプロファイルを入れて、項目の内容と区別する必要があるかどうか
3、actionのgetとsetがすべて必要かどうか