การวิจัยหลักในบทความนี้คือเนื้อหาที่เกี่ยวข้องของการเรียนรู้ฤดูใบไม้ผลิ @sessionattributes ดังนี้
โดยค่าเริ่มต้นขอบเขตของแอตทริบิวต์ใน ModelMap คือระดับคำขอนั่นคือเมื่อคำขอเสร็จสมบูรณ์แอตทริบิวต์ใน ModelMap จะถูกทำลาย หากคุณต้องการแบ่งปันคุณสมบัติใน ModelMap ในหลายคำขอคุณต้องถ่ายโอนคุณสมบัติของพวกเขาไปยังเซสชันเพื่อให้คุณสมบัติของ ModelMap สามารถเข้าถึงได้ในการร้องขอ
สปริง ช่วยให้เราสามารถระบุคุณสมบัติที่จะต้องถ่ายโอนคุณสมบัติใดใน ModelMap ไปยังเซสชันเพื่อให้คุณสมบัติเหล่านี้สามารถเข้าถึงได้ในรายการคุณสมบัติของ ModelMap ที่สอดคล้องกับแอตทริบิวต์ที่ร้องขอถัดไป ฟังก์ชั่นนี้ถูกนำไปใช้โดยการติดฉลากคำอธิบายประกอบ @SessionAttributes ที่นิยามคลาส
สร้างคุณสมบัติเฉพาะของวัตถุโมเดลมีขอบเขตขอบเขตเซสชัน
แพ็คเกจ com.baobaotao.web; …นำเข้า org.springframework.ui.modelmap; นำเข้า org.springframework.web.bind.annotation.sessionattributes; @controller @requestmapping ("/bbtforum.do" ในรายการแอตทริบิวต์เซสชันเพื่อให้แอตทริบิวต์นี้สามารถเข้าถึงคลาสสาธารณะ BBTForumController {… @requestmapping (params = "method = listboardtopic") สตริงสาธารณะ listboardtopic (@requestparam ("id") int Topicid ผู้ใช้ TopicId); System.out.println ("ผู้ใช้:" + ผู้ใช้); model.addattribute ("curruser", ผู้ใช้); // ②addคุณสมบัติไปยัง modelmap return "listtopic";}} เราเพิ่มแอตทริบิวต์ ModelMap ที่②ซึ่งแอตทริบิวต์คือ Curruser และที่①เราวางแอตทริบิวต์ชื่อ Curruser ใน ModelMap ลงในเซสชันผ่าน @SessionAttributes Annotation ดังนั้นเราไม่เพียง แต่สามารถรับวัตถุผู้ใช้ผ่าน request.getAttribute(“currUser”) session.getAttribute(“currUser”) session.getAttribute(“currUser”) ModelMap#get(“currUser”) หน้ามุมมอง JSP ที่สอดคล้องกับคำขอ listboardtopic ()
ที่นี่เราจะใส่แอตทริบิวต์ของ modelmap ลงในเซสชันเท่านั้น ในความเป็นจริง @SessionAttributes อนุญาตให้มีการระบุแอตทริบิวต์หลายตัว คุณสามารถระบุหลายแอตทริบิวต์ผ่านอาร์เรย์สตริงเช่น @SessionAttributes({“attr1”,”attr2”}) นอกจากนี้ ,@SessionAttributes ยังสามารถระบุแอตทริบิวต์ modelmap ที่จะถูกทำให้เซสชันผ่านประเภทแอตทริบิวต์เช่น @SessionAttributes(types = User.class) @SessionAttributes(types = {User.class,Dept.class}) แน่นอนว่าหลายคลาสสามารถระบุได้เช่น @SessionAttributes(types = {User.class,Dept.class},value={“attr1”,”attr2”})
เราสามารถเพิ่ม @SessionAttributes ลงในคอนโทรลเลอร์ที่ต้องการเข้าถึงคุณสมบัติเซสชันจากนั้นเพิ่ม @ModelAttribute ลงในพารามิเตอร์ผู้ใช้ที่ต้องการโดยการกระทำและตรวจสอบให้แน่ใจว่าชื่อแอตทริบิวต์ของทั้งสองนั้นสอดคล้องกัน SpringMVC จะฉีดแอตทริบิวต์ที่กำหนดโดย @SessionAttributes โดยอัตโนมัติลงในวัตถุ ModelMap เมื่อตั้งค่ารายการพารามิเตอร์การกระทำให้ไปที่ ModelMap เพื่อรับวัตถุดังกล่าวและเพิ่มลงในรายการพารามิเตอร์ ตราบใดที่เราไม่เรียกวิธีการ setComplete() ของ SessionStatus วัตถุนี้จะถูกเก็บไว้ในเซสชั่นดังนั้นจึงตระหนักถึงการแบ่งปันข้อมูลเซสชัน
@Controller @SessionAtTributes ("CurrentUser") </span> คลาสสาธารณะ GreetingController {@requestmapping โมฆะสาธารณะ Hello (@modelattribute ("CurrentUser") ผู้ใช้) {// user.sayhello ()}}}}}ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้เกี่ยวกับการวิเคราะห์อินสแตนซ์ @sessionattributes ของการเรียนรู้ฤดูใบไม้ผลิ ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน เพื่อนที่สนใจสามารถอ้างถึงหัวข้ออื่น ๆ ที่เกี่ยวข้องในเว็บไซต์นี้ต่อไป หากมีข้อบกพร่องใด ๆ โปรดฝากข้อความไว้เพื่อชี้ให้เห็น ขอบคุณเพื่อนที่ให้การสนับสนุนเว็บไซต์นี้!