覆盖子Spring Controller中的@RequestMapping

时间:2015-02-24 13:14:52

标签: java spring-mvc

我们将Spring 3.2用于具有父项和子项(maven)项目的项目(子项目扩展了父项目)。

我们有一个问题是覆盖子项目中的@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="${...}")的情况下为我提供了出色的解决方案。

祝你好运

1 个答案:

答案 0 :(得分:0)

我将父级视为抽象类,并使该方法未实现以覆盖它。

如果您想这样做,这种解决方法可能会对您有所帮助;查看SpringMVC路由器project on GitHub

它是SpringMVC的Play's Routes file实现。