2015-02-24 77 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