Struts 2とajax【未完成】

2082 ワード

以前はプロジェクトで毎回ajaxを直接使って非同期処理をしていましたが、今は考えを整理する必要があると思います.
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 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がすべて必要かどうか