เป็นไปได้ไหมที่จะใช้@RequestMapping
คำอธิบายประกอบหลายรายการบนวิธีการ
ชอบ :
@RequestMapping("/")
@RequestMapping("")
@RequestMapping("/welcome")
public String welcomeHandler(){
return "welcome";
}
เป็นไปได้ไหมที่จะใช้@RequestMapping
คำอธิบายประกอบหลายรายการบนวิธีการ
ชอบ :
@RequestMapping("/")
@RequestMapping("")
@RequestMapping("/welcome")
public String welcomeHandler(){
return "welcome";
}
คำตอบ:
@RequestMapping
มีString[]
พารามิเตอร์ค่าดังนั้นคุณควรระบุหลายค่าดังนี้:
@RequestMapping(value={"", "/", "welcome"})
จากการทดสอบของฉัน (สปริง 3.0.5) @RequestMapping(value={"", "/"})
- ใช้"/"
งานได้เท่านั้น""
ไม่ได้ แต่ผมพบว่างานนี้@RequestMapping(value={"/", " * "})
ที่" * "
ตรงกับอะไรดังนั้นมันจะเป็นตัวจัดการเริ่มต้นในกรณีที่ไม่มีคนอื่น ๆ
ไม่จำเป็นต้อง คำอธิบายประกอบ RequestMapping สนับสนุนสัญลักษณ์แทนและเส้นทางสไตล์มด ดูเหมือนว่าคุณเพียงแค่ต้องการมุมมองเริ่มต้นเพื่อให้คุณสามารถวาง
<mvc:view-controller path="/" view-name="welcome"/>
ในไฟล์ปรับแต่งของคุณ นั่นจะส่งต่อคำขอทั้งหมดไปยังรูทไปยังมุมมองการต้อนรับ
วิธีที่สั้นที่สุดคือ: @RequestMapping({"", "/", "welcome"})
แม้ว่าคุณจะสามารถทำได้:
@RequestMapping(value={"", "/", "welcome"})
@RequestMapping(path={"", "/", "welcome"})
ตอนนี้เมื่อใช้ Spring-Boot 2.0.4 - {} จะไม่ทำงาน
@RequestMapping
ยังคงมี String [] เป็นพารามิเตอร์ค่าดังนั้นการประกาศจะมีลักษณะดังนี้:
@RequestMapping(value=["/","/index","/login","/home"], method = RequestMethod.GET)
** อัปเดต - ทำงานร่วมกับ Spring-Boot 2.2 **
@RequestMapping(value={"/","/index","/login","/home"}, method = RequestMethod.GET)
ต่อไปนี้เป็นที่ยอมรับเช่นกัน:
@GetMapping(path = { "/{pathVariable1}/{pathVariable1}/somePath",
"/fixedPath/{some-name}/{some-id}/fixed" },
produces = "application/json")
สามารถนำไปใช้@RequestMapping
กันได้เช่นกัน
การใช้คำอธิบายประกอบ PathVariable จะดีกว่าถ้าคุณยังต้องการรับ uri ที่ถูกเรียก
@PostMapping("/pub/{action:a|b|c}")
public JSONObject handlexxx(@PathVariable String action, @RequestBody String reqStr){
...
}
หรือแยกมันออกจากคำขอวัตถุ