この記事の主な研究は、次のように、Spring Learning @SessionAttributesの関連コンテンツです。
デフォルトでは、ModelMapの属性の範囲は要求レベルです。つまり、要求が完了すると、ModelMapの属性が破壊されます。複数のリクエストでModelMapのプロパティを共有する場合は、ModelMapのプロパティにリクエストを介してアクセスできるように、プロパティをセッションに転送する必要があります。
Springを使用すると、モデルマップ内のどのプロパティをセッションに転送する必要があるかを選択的に指定できるため、これらのプロパティには次の要求された属性に対応するモデルマップのプロパティリストにもアクセスできます。この関数は、クラス定義で@SessionAttributesアノテーションにラベルを付けることにより実装されます。
モデルオブジェクトの特定のプロパティを作成するには、セッションスコープスコープがあります
com.baobaotao.web;この属性がパブリッククラスBBTFORUMCONTROLLER {…@RequestMapping(params = "method = listboardtopic")public string listboardtopic(@requestparam( "id")int topopid、user、modelmap model){bbtforumservice.getboardtopics(topisid(topectid); emstem.topid: "bbtforumservice.getboardtopics); topicid); system.out.println( "user:" + user); model.addattribute( "curruser"、user); // modelmap return "listtopic";}}モデルマップ属性を追加しました。その属性の属性はCurruserであり、 @SessionAttributes Annotationを通じてModelMapの属性をModelMapの属性をModelMapに配置します。したがって、 request.getAttribute(“currUser”)とsession.getAttribute(“currUser”)を使用してユーザーオブジェクトを取得するだけでなく、 session.getAttribute(“currUser”)またはModelMap#get(“currUser”)を介してこの属性を介してこの属性を介してこの属性にアクセスします。
ここでは、モデルマップの属性をセッションに配置します。実際、 @SessionAttributesを使用すると、複数の属性を指定できます。 @SessionAttributes({“attr1”,”attr2”})など、文字列配列を介して複数の属性を指定できます。さらに,@SessionAttributes @SessionAttributes(types = User.class)などの属性タイプを介してセッション化するモデルマップ属性を指定することもできます。もちろん、 @sessionattributes(types = {user.class、 @SessionAttributes(types = {User.class,Dept.class},value={“attr1”,”attr2”}) @SessionAttributes(types = {User.class,Dept.class})などの複数のクラスも指定できます。 @SessionAttributes(types = {User.class,Dept.class},value={“attr1”,”attr2”}) 。
セッションプロパティにアクセスする必要があるコントローラーに@SessionAttributesを追加し、アクションに必要なユーザーパラメーターに@ModelAttributeを追加し、2つの属性名が一貫していることを確認できます。 SpringMVCは、 @SessionAttributesで定義された属性をModelMapオブジェクトに自動的に挿入します。アクションパラメーターリストを設定するときは、ModelMapに移動してそのようなオブジェクトを取得し、パラメーターリストに追加します。 setComplete() Method of SessionStatusを呼び出さない限り、このオブジェクトはセッションに保持され、それによりセッション情報の共有が実現されます。
@controller @sessionattributes( "currentuser")</span> public class greetingcontroller {@requestmapping public void hello(@modelattribute( "currentuser")ユーザーユーザー){// user.sayhello()}}}上記は、春学習の@SessionAttributesインスタンス分析に関するこの記事のすべての内容です。私はそれが誰にでも役立つことを願っています。興味のある友人は、このサイトの他の関連トピックを引き続き参照できます。欠点がある場合は、それを指摘するためにメッセージを残してください。このサイトへのご支援をありがとうございました!