Java 在子Spring控制器中重写@RequestMapping
我们将Spring3.2用于带有父项目和子项目(maven)的项目(子项目扩展父项目) 我们遇到了一个问题,需要覆盖子项目中的Java 在子Spring控制器中重写@RequestMapping,java,spring-mvc,Java,Spring Mvc,我们将Spring3.2用于带有父项目和子项目(maven)的项目(子项目扩展父项目) 我们遇到了一个问题,需要覆盖子项目中的@RequestMapping,以便专门重新定义URL的状态。 例如: @Controller public class MyParentProjectController { @RequestMapping(value = "/pdfRender") public ModelAndView pdfRender(MyParentProjectComman
@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)
{
// ...
}
}
}
Spring告诉我这是不可能的,因为子项目中有两个相同的入口点。无法重新定义RequestMapping
。我找不到一个解决办法,不经过扭曲的东西。
如果您没有使用@RequestMapping(value=“${…}”)
为我提供了一个出色的解决方案
致以最良好的祝愿我会将父类设置为抽象类,并保留该方法未实现以覆盖它 如果你想这样做,这个变通方法可能会帮助你;查看SpringMVC路由器
这是SpringMVC的一个实现。试试:
公共类MyChildProjectController扩展MyParentProjectController
它们是如何部署的?@Javier Mollá:这是不可能的。如果我扩展一个控制器,我会遇到完全相同的问题。如果两个项目都是你的,我想你可以在控制器内使用一个受保护的函数,这样你可以在Child扩展时覆盖它。谢谢你的解决方案。没有重量或订单的可能性?我将看到这个选项,它需要审查许多事情(从我们的框架和项目),尝试思考是否必须同时提供家长和孩子服务,以及它们是否可以是两种不同的服务。