2015-02-24 71 views
0

我們將Spring 3.2用於帶有父項目和子項目(maven)項目的項目(子項目擴展了父項目)。在子彈簧控制器中覆蓋@RequestMapping

我們有一個問題可以覆蓋子項目中的@RequestMapping,以專門重新定義URL的狀態。 例如:

@Controller 
public class MyParentProjectController { 

    @RequestMapping(value = "/pdfRender") 
    public ModelAndView pdfRender(MyParentProjectCommand command, HttpServletRequest request, 
      HttpServletResponse response, Application application) 
     { 
      // ... 
     } 
    } 
} 

而且在與父項目的依賴子項目:

@Controller 
public class MyChildProjectController { 

    @RequestMapping(value = "/pdfRender") 
    public ModelAndView pdfRender(MyChildProjectCommand command, HttpServletRequest request, 
      HttpServletResponse response, Application application) 
     { 
      // ... 
     } 
    } 
} 

春告訴我,因爲有子項目兩個相同的切入點這是不可能的。無法重新定義RequestMapping。沒有經過扭曲的東西,我找不到解決方案。 如果你對我有沒有用的精彩解決方案@RequestMapping(value="${...}")

問候

+0

試一下:'公共類MyChildProjectController擴展MyParentProjectController' – 2015-02-24 13:22:40

+0

他們是如何部署的? – farrellmr 2015-02-24 13:24:40

+0

@JavierMollá:這是不可能的。如果我擴展一個控制器,我有完全相同的問題。 – 2015-02-24 13:43:24

回答

0

我會想辦法讓家長一個抽象類,並留下未實現將其覆蓋該方法。

如果你想這樣,這個解決方法可能會幫助你;檢查SpringMVC路由器project on GitHub

這是SpringMVC的Play's Routes file的實現。

+0

謝謝你使用這個解決方案。沒有重量或順序可能性?我會看到這個選項,它需要審查很多事情(從我們的框架和項目) – 2015-02-27 10:40:43

+0

試着想想是否必須同時擁有父母和孩子的服務,以及他們可能是兩個不同的服務。 – 2015-02-27 12:38:14