在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映射。通常盒子中使用了的那些是默认的实现,即SimpleUrlHandlerMapping
,BeanNameUrlHandlerMapping
和DefaultAnnotationHandlerMapping
。
如果您想实现自己的映射机制,这很容易做到-只需实现该接口(或更可能是extend
AbstractUrlHandlerMapping
),在您的上下文中将该类声明为Bean,DispatcherServlet
当有请求时将使用该类进行查询。需要映射。
请注意,HandlerMapping
在一个上下文中,您可以具有任意多个实现。将依次咨询他们,直到其中之一匹配为止。
以上是 在Spring MVC中可以动态设置RequestMappings吗? 的全部内容, 来源链接: utcz.com/qa/432923.html