-2

私たちのアプリケーションは Struts2 で開発され、JBoss サーバー上で実行されます。

私は、グリッドのコンテンツが表示され、セッションに保存されている(たとえば人物オブジェクト) のタグを使用<s:iterator>して JSP ページを開発する必要があります。<s:property>ListArrayList

ユーザーは、セッション リストの反復によって生成された行の内容を追加/更新/削除できるようになりました。

たとえば、Peron オブジェクトのサイズ n のリストがあり、JSP では次のように表示される場合

お名前 年齢 連絡先

お名前1 24 1234456

お名前2 30 45654634

等々...

ユーザーは任意の数の行を追加/更新/削除でき、最終的に保存できます。

この要件にどのようにアプローチしますか?

4

1 に答える 1

1

これは危険です... 電力がなくなったとしましょう。セッションはどこでも保持されません。

したがって、セッションを n 回更新して最後に一度にデータを保存する代わりに、単純にデータを n 回保存することができます。しかし、必要条件は、データベースへのアクセスが多すぎるのを防ぐことであると考えられていました (数千人のユーザーに関連する可能性があります)。その後、AJAX と Struts2-JSON-plugin を次のように使用できます。

  1. SessionAware を実装し、JSP から行を受信する AJAX アクションを ( <package>that extends="json-default"および return で) 作成します。<result type="json">
  2. メソッドでexecute()、セッション マップからリストを読み取り、新しい行を追加してから、SUCCESS を返します。
  3. JSP で、AJAX アクション (行のボタンのクリック、onblur イベントなど、好きなもの) を呼び出すためのバインディングを作成します。
  4. データベースにデータを保存するために、別のアクション (AJAX かどうかに関係なく、SessionAware も実装する必要があります) を呼び出すボタンを追加します。このアクションは、単にセッション マップからリストを読み取り、それをデータベースに保存します。

このようにして、ユーザーはページを変更し、戻ってきて以前に入力したすべてのデータを見つけることができ、ページ全体の多くの POST を回避できます (AJAX + JSON ははるかに軽量です)。

于 2013-10-03T12:18:30.810 に答える