ข้อขัดแย้งในการแมประดับคลาสในตัวควบคุมสปริง

ฉันเพิ่งเริ่มเรียนรองเท้าสปริง โปรดไขข้อสงสัยของฉันด้วย

สมมติว่ามีตัวควบคุมสองตัว

@Controller
@RequestMapping("A")
public class A{
               @RequestMapping("hi")
               public String gethi(){
                      return "Hi";
               }
}

และตัวควบคุมอื่น

@Controller
@RequestMapping("B")
public class B{
               @RequestMapping("hello")
               public String gethello(){
                      return "Hello";
               }
}

สมมติว่าผู้ใช้อยู่ในหน้าดัชนีและคลิกลิงก์ดังต่อไปนี้

<a href="/thA/hi">click</a>

เขาระบุว่าตัวควบคุม A จะได้รับคำขอนี้และตอบกลับตามนั้น และ URL จะมีลักษณะดังนี้: www.abc.com/A/hi

แต่หากผู้ใช้ต้องการส่งคำขอไปยังวิธีของคอนโทรลเลอร์ B สมมติว่าตอนนี้เขาคลิกที่ลิงค์ดังต่อไปนี้

<a href="/thB/hello">click</a>

ตอนนี้ผู้ใช้จะได้รับข้อความแสดงข้อผิดพลาด และ url จะกลายเป็น: www.abc.com/A/B/hello

แต่ถ้าเพิ่ม * ในการแมปคำขอระดับชั้นเรียนเช่น:

@Controller
@RequestMapping("*/B")
public class B{

จากนั้นวิธีนี้จะดำเนินการ แต่ URL นี้ www.abc.com/A/B/hello ยังดูไม่ดี


person Navneet Singh    schedule 13.05.2020    source แหล่งที่มา


คำตอบ (1)


<a href="/thA/hi">click</a>

หลังจากคลิกลิงค์ด้านบนแล้วให้กลับไปที่ดัชนี www.abc.com

ตอนนี้เมื่อคุณจะคลิก <a href="/thB/hello">click</a> มันจะทำงานได้ดี

สิ่งนี้เกิดขึ้นเนื่องจากคุณไม่ได้ใช้กลไกการกำหนดเส้นทางการนำทางใน UI

person Shane aalam    schedule 13.05.2020