2

Struts 2 アクション クラスに次のプロパティがある場合

List<User> userList.

そして、ユーザークラスには次のようなプロパティがあります

username, password, createdDate

そのアクションを指すjQuery ajaxリクエストを送信しながら、適切なJSON文字列を渡すことでストラットにリストを入力させることは可能ですか?

可能であればどのように?特に、JSON 文字列はどのように見える必要がありますか?

ご不明な点がございましたらお問い合わせください。

編集:私が十分に明確でなかったら申し訳ありません。私がやりたいことは、アクションから JSP にデータを取得したり、フォームを送信してデータを入力したりすることではありません。Struts 2 が Action クラスの List に自動的に入力するために使用できる JSON データを含む AJAX リクエストを送信したいと考えています。

AJAX でフォームを送信しないでください。

4

1 に答える 1

4
  1. アクションの結果を定義type="json"し、クラスパスに json プラグインがあることを確認する必要があります。

    <struts>
        <package name="your_package" extends="struts-default, json default" namespace="/">
        // your action here
        </pacakge>
        ...
    </struts>
    
  2. このようにアクションクラスを編集します

    public class myAction extends ActionSupport {
        private List<User> userlist; // getter and setter
        public String execute() {
           // your moves
           return SUCCESS;
        }
    }
    
  3. 次に、jsp ページでいくつかの操作を行って、次のような結果を表示できます。

    <s:iterator list="userList">
      <s:property value="username"/>
      <s:property value="password"/>
      <s:property value="createdDate"/>
    <s:iterator>
    

これがあなたを助けることを願っています..

アップデート

json オブジェクトが既にある場合:

{
   "userList" : [
      {"username" : "username", "password" : "afgasdfa", "createdDate" : "date-in-format"},
      {"username" : "username", "password" : "afgasdfa", "createdDate" : "date-in-format"},
      {"username" : "username", "password" : "afgasdfa", "createdDate" : "date-in-format"},
      {"username" : "username", "password" : "afgasdfa", "createdDate" : "date-in-format"}
   ]
}

これがフォーマットである必要があります。

次に、アクションクラスからこのオブジェクトを取得する必要がありますList<User> userList

試してみて、フィードバックしてください。

更新 2

おそらく、 を使用して json オブジェクトを取得しString、次を使用して Java オブジェクトに変換する必要があります。

String stringObject; // which get your string from http
List<User> userList;

userList = (List<User>)JSON.deserialize(stringObject,List<User>.class);

再度フィードバックしてください。

于 2012-07-11T10:34:36.567 に答える