ปัญหาการกระโดด SpringMVC
คอนโทรลเลอร์ของ SpringMVC ส่งคืนมุมมองเชิงตรรกะและแบบจำลองทุกครั้งที่ประมวลผลข้อมูล
ดังนั้นเราจะเห็นว่าคอนโทรลเลอร์เนทีฟส่งคืน modelandview (พร้อมมุมมองและโมเดลภายใน)
ภายใต้สถานการณ์ปกติ (เว้นแต่ว่าวิธีการที่มีคำอธิบายประกอบโดย @ModelAttribute) ModelAndView จะถูกส่งคืนในที่สุด
แน่นอนว่าบางครั้งวิธีการประมวลผลฟังก์ชั่นไม่จำเป็นต้องส่งคืนมุมมองเชิงตรรกะ แต่ยังสามารถเปลี่ยนเส้นทางไปยังวิธีการฟังก์ชันอื่น
การส่งต่อภายในไปยังมุมมองเชิงตรรกะหรือวิธีการทำงานอื่น
-
พลังของ SpringMVC คือมันห่อหุ้มรหัสพื้นฐานจำนวนมากสำหรับ servlets แต่มันจะปิดกั้นผู้ใช้อย่างสมบูรณ์จาก Servlet API
การใช้ดังนั้นการกระโดดหน้าใน SpringMVC จะแบ่งออกเป็นสองประเภท:
ใช้ servletapi เพื่อใช้การกระโดดหน้า
วิธีการเปลี่ยนเส้นทาง: เนื่องจากสาระสำคัญของการเปลี่ยนเส้นทางคือการกำหนดให้เบราว์เซอร์ต้องส่งคำขออีกครั้งหน้าใน SpringMVC มักจะอยู่ภายใต้ Web-Inf และเบราว์เซอร์ไม่สามารถเข้าถึงได้โดยตรง)
ดังนั้นการเปลี่ยนเส้นทางที่นี่จะเปลี่ยนเส้นทางไปยังวิธีการทำงานอื่นเป็นหลัก
การร้องขอการส่งต่อภายในเซิร์ฟเวอร์: การส่งต่อการร้องขอเป็นพฤติกรรมภายในของเซิร์ฟเวอร์ดังนั้นคุณสามารถข้ามไปยังหน้า JSP หรือข้ามไปยังวิธีการประมวลผลฟังก์ชั่นอื่นได้โดยตรง
`` `ข้อความ
// ใช้ servletapi ดั้งเดิมสำหรับการเปลี่ยนเส้นทางหน้า @requestmapping ("/c") การทดสอบสตริงสาธารณะ (การตอบสนอง httpservletResponse, คำขอ httpservletrequest) โยน servletexception, ioexception {system.out.println ("testc"); เซิร์ฟเวอร์ // request.getRequestDispatcher ("/web-inf/jsp/index.jsp"). forward (คำขอ, การตอบกลับ); // ข้ามไปยังวิธีการประมวลผลฟังก์ชั่นภายในเซิร์ฟเวอร์ // request.getRequestDispatcher ("/dispather/b") ส่งต่อ (คำขอ, การตอบกลับ); // เปลี่ยนเส้นทางการตอบสนองวิธีการฟังก์ชั่น Sendredirect (request.getContextPath ()+"/dispather/b"); คืนค่า null; -ใช้ API ของ SpringMVC เพื่อใช้ PAGE JUMP
ส่งคืนชื่อมุมมองเชิงตรรกะโดยตรง
ข้อความ @requestmapping ("/b") สตริงสาธารณะ testb () {system.out.println ("testb"); // กลับไปที่มุมมองคืน "ดัชนี" โดยตรง; -ส่งคืนโมเดลที่กำหนดเองและวิวทิวทัศน์: เมื่อปรับแต่ง ModelandView คุณสามารถเปลี่ยนเส้นทางหรือขอส่งต่อ
`` `ข้อความ
// คอนโทรลเลอร์ใช้ ModelAndView เพื่อกระโดดและเปลี่ยนเส้นทาง @RequestMapping ("/e") โมเดลสาธารณะและวิววิว () {system.out.println ("teste"); // ข้ามไปยังหน้าภายในเซิร์ฟเวอร์ // กลับ "ดัชนี"; // ข้ามไปยังวิธีการประมวลผลฟังก์ชั่นภายในเซิร์ฟเวอร์ // ส่งคืน modelandview ใหม่ ("ส่งต่อ:/dispather/b"); // เปลี่ยนเส้นทางวิธีการฟังก์ชั่นส่งคืน modelandview ใหม่ ("เปลี่ยนเส้นทาง:/dispather/b");}สรุป
ข้างต้นเป็นเรื่องเกี่ยวกับบทความนี้ที่พูดถึงปัญหาการกระโดดหน้าใน SpringMVC ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน เพื่อนที่สนใจสามารถอ้างถึงหัวข้ออื่น ๆ ที่เกี่ยวข้องในเว็บไซต์นี้ต่อไป หากมีข้อบกพร่องใด ๆ โปรดฝากข้อความไว้เพื่อชี้ให้เห็น ขอบคุณเพื่อนที่ให้การสนับสนุนเว็บไซต์นี้!
อ้างถึง:
การเขียนโปรแกรม Java ของตัวอย่างการเข้าสู่ระบบ SpringMVC Simple Login
SpringMVC Interceptor ใช้การลงชื่อเข้าใช้ครั้งเดียว
การแนะนำสไตล์ REST SpringMVC และรหัสการใช้งาน