Struts 2シリーズの(1)JSONカードでajaxデータを返す

2298 ワード

  • 導入struts2-json-plugin.jar
  • AjaxActionクラスを作成し、ここでの属性usersValueStack rootのスタックトップ
  • に格納.
  • 要求AjaxActionのとき、AjaxActionのオブジェクトはスタックトップ
  • に押し込まれる.
  • Actionに携帯する属性名は、メンバー変数名ではなくgetXXX()によって決定されるが、一般的には同じ
  • に設定.
    public class AjaxAction extends ActionSupport {
       List users;
    
       public List getUsers() {
           return users;
       }
    
       @Override
       public String execute() throws Exception {
           users = new ArrayList<>();
           users.add(new User("  ","1234532"));
           users.add(new User("  ","1234532"));
           users.add(new User("  ","1234532"));
           users.add(new User("ethan","1234532"));
           System.out.println("ajax execute");
           return SUCCESS;
       }
    }
    
  • struts.xmlにaction
  • を配置する.
    
        
    
            
                
         
                    users
                
            
        
    
    

    構成の詳細:
  • packageextends属性値はjson-default
  • に設定.
  • resulttype属性値はjson
  • に設定.
    構成後、valueStackrootスタックトップデータがjsonになります.現在のプログラムの場合、スタックトップデータはAjaxActionオブジェクトです.すなわち、最終的に返されるjsonのデータは、AjaxActionのオブジェクトを変換したものである.
    {
        "users": [{
            "username": "  "
        }, {
            "username": "  "
        }, {
            "username": "  "
        }, {
            "username": "ethan"
        }],
        "otherProperty": "values"
    
    }
    
    AjaxActionで指定された属性usersのみを取得し、jsonに変換する方法:result内部追加構成:users
    [{
        "username": "  "
    }, {
        "username": "  "
    }, {
        "username": "  "
    }, {
        "username": "ethan"
    }]