我有一种情况需要以下RequestMapping:
@RequestMapping(value={"/{section}"})
...method implementation here...
@RequestMapping(value={"/support"})
...method implementation here...
有一个明显的冲突.我希望Spring会自动解决这个问题,并将map / support映射到第二个方法,其他所有内容都放在第一个方法中,但它会映射/支持第一个方法.
我如何告诉Spring允许显式RequestMapping在同一个地方覆盖带有PathVariable的RequestMapping?
编辑2:如果/ support映射出现在/ {section}映射之前,它似乎可以工作.不幸的是,我们有许多控制器包含许多使用RequestMapping的方法.如何确保带有/ {section}映射的控制器最后被初始化?或者预拦截器是否可行?
编辑1:这是简化的,我知道单独使用这两个RequestMapping会没有多大意义)
最佳答案
使用Spring,您可以扩展org.springframework.web.HttpRequestHandler以支持您的方案.
原文链接:https://www.f2er.com/spring/432740.html实施方法:
@Override
public void handleRequest(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {}
使用它来分析传入的请求,确定请求URL是否是您的特殊请求URL子集的一部分并转发到适当的位置.
例如:
@Override
public void handleRequest(HttpServletRequest request,IOException {
/** You will want to check your array of values and have this data cached **/
if (urlPath.contains("/sectionName")) {
RequestDispatcher requestDispatcher = request.getRequestDispatcher("sections" + "/" + urlPath);
requestDispatcher.forward(request,response);
}
}
并设置您的部分,例如:
@RequestMapping(value={"/sections/{sectionName}"})
这不会干扰任何预先存在的控制器映射.