在Spring MVC中可以动态设置RequestMappings吗?

我已经使用Spring

MVC三个月了。我正在考虑一种动态添加RequestMapping的好方法。这是因为有必要将控制器部件放入库中,然后进行动态添加。无论如何,我能想到的唯一方法就是声明这样的控制器:

@Controller

@RequestMapping("/mypage")

public class MyController {

@RequestMapping(method = RequestMethod.GET)

public ModelAndView mainHandler(HttpServletRequest req) {

return handleTheRest(req);

}

}

这样做不好,因为基本上我没有使用Spring。然后,我将无法使用表单绑定,批注等。我想将动态添加requestMappings到可以通过自动绑定像通常的MVC控制器一样进行注释的类的方法,以便避免手动处理HttpServletRequest。

有任何想法吗?}

回答:

Spring

MVC使用HandlerMapping接口的实现来执行URL映射。通常盒子中使用了的那些是默认的实现,即SimpleUrlHandlerMappingBeanNameUrlHandlerMappingDefaultAnnotationHandlerMapping

如果您想实现自己的映射机制,这很容易做到-只需实现该接口(或更可能是extend

AbstractUrlHandlerMapping),在您的上下文中将该类声明为Bean,DispatcherServlet当有请求时将使用该类进行查询。需要映射。

请注意,HandlerMapping在一个上下文中,您可以具有任意多个实现。将依次咨询他们,直到其中之一匹配为止。

以上是 在Spring MVC中可以动态设置RequestMappings吗? 的全部内容, 来源链接: utcz.com/qa/432923.html

回到顶部