2010-10-10 41 views
34

Tôi có hơn 20 hình thức được liên kết từ cùng một trang. Một số biểu mẫu chia sẻ cùng một bộ điều khiển, trong khi một số khác sử dụng bộ điều khiển của riêng chúng. Ví dụ: biểu mẫu A, BC sử dụng DefaultController, trong khi mẫu D sử dụng ControllerD.Spring MVC: Ánh xạ nhiều URL tới cùng một bộ điều khiển

Điều tôi muốn đạt được là ánh xạ URL tới từng biểu mẫu theo cách nhất quán.

Vì vậy, lý tưởng, trang liên kết sẽ như thế nào:

  • hai này

    <a href="/formA.html">Form A</a> 
    <a href="/formB.html">Form B</a> 
    <a href="/formC.html">Form C</a> 
    <a href="/formD.html">Form D</a> 
    
  • hay này:

    <a href="/form.html?name=A">Form A</a> 
    <a href="/form.html?name=B">Form B</a> 
    <a href="/form.html?name=C">Form C</a> 
    <a href="/form.html?name=D">Form D</a> 
    

Câu hỏi đặt ra là làm sao để ánh xạ từng URL tới bộ điều khiển thích hợp. Với mẫu URL đầu tiên, bạn sẽ lập bản đồ formD.html đến ControllerD, nhưng không chắc chắn cách ánh xạ form[A|B|C].html đến DefaultController. Với mẫu URL thứ hai, tôi thậm chí không biết bắt đầu từ đâu ...

Có ai đã làm điều gì đó như thế này không?

Trả lời

127

Vì không ai dường như đã đưa ra câu trả lời đầy đủ về đây nào:

Các @RequestMapping chú thích có thể mất một mảng cho tham số "giá trị" của nó. Để ánh xạ này ở cấp điều khiển bằng cách sử dụng mô hình đầu tiên, bạn sẽ sử dụng:

@Controller 
@RequestMapping(value={"/formA.html", "/formB.html", "/formC.html"}) 
public class ControllerA { 

} 

Và sau đó:

@Controller 
@RequestMapping(value="/formD.html") 
public class ControllerD { 

} 
+0

Cảm ơn cho câu trả lời rõ ràng :) – Hossein

+0

tôi đặt này trên phương pháp của tôi thay vì bộ điều khiển và nó hoạt động rất tốt. – user3885927

Các vấn đề liên quan