0

私はセッション管理を初めて使用し、バックエンドとして MySQL でストラットを使用しています。私は単純なタイムシート アプリケーションを開発しています。私の要件は、ユーザーがログインページで正常にログインした場合、そのユーザーのセッションスコープに保存されている作業またはタスクを追加できる必要があるようなものです。同様に、通常のセッション スコープのデータベースからのデータの取得のように、タイムシート データのみを表示できるはずです。アクション クラス (Java ソース) を使用せずに、セッション スコープのバックエンド インタラクションに JSTL タグを使用することは可能ですか。これを実装するための最初から最後までの簡単で詳細な手順を教えてください。

1 つのテーブルまたはデータベースに保存されているすべてのユーザー データをユーザー セッション スコープで機能させる方法について、私は混乱しています。そうでない場合、データをどのように保存する必要がありますか(ユーザーごとに個別ですか?)Plz説明してください。

4

1 に答える 1

0

実際には非常に簡単です。

Struts では、各要求は Struts サーブレットに送られ、Struts アクションにディスパッチされます。

Struts アクションは、ユーザーからの入力データをアクション フォームから取得します。セッションにもアクセスできます。そして、このすべての情報を使用して、データベースからデータを取得し、このデータを (Java Bean として) 要求属性に格納できます。

その後、アクションはアクション転送を返し、Struts サーブレットはリクエストを対応する JSP ページに転送します。この JSP ページは、アクションによって要求属性に格納されたデータを使用して HTML を生成します。

そのため、ログイン後、セッションで認証されたユーザーの ID を取得する必要があります。アクションは、このユーザー ID を使用して、このユーザーに属するデータベースからデータを取得できます。

select foo.id, foo.name, foo.description from FOO foo where foo.user_id = ?

JSP でデータベースからデータを取得しようとしないでください。JSP は HTML のみを生成する必要があります。セッションからユーザー ID を取得し、このユーザー ID を使用してデータベースからデータを取得するのは、アクション クラスから呼び出される Java コードの役割です。これが、Struts によって促進される MVC パターンの要点です。

于 2012-07-05T07:26:01.580 に答える