问题: 在项目中遇到在webConfig里面配置默认页面, 结果跳过controller直接访问ftl模板文件的问题, 发现是自己疏忽, 不清楚执行流程.
下面是上面问题的执行流程, 记下来下次遇到留神.
项目启动:
第一步
: 项目中配置了默认路径, / 跳到 /index 会在容器启动时候初始化一个parameterizableViewController.
第二步:
,这个parameterizableViewController. 项目启动时候赋值给AbstractUrlHandlerMapping拦截器的rawHandler名下
项目处理请求:
第一步:
请求进dispatcherServlet来了, 进入我们的拦截器(preHandle), 先进行一连串的拦截处理(下图示意, 图中文字是拦截器处理完要说的)
第二步:
AbstractUrlHandlerMapping拦截器会在拦截器链的第一个 在拦截器处理时候会把/路径的请求拦截下来, 映射到/index
第三步:
进入第二个拦截器,也就是我的登陆拦截器, 直接跳过去了, 原因如下图解释
第三步:
拦截器执行完了, 就进入到parameterizableViewController里面处理了 直接进入/index模板文件, 跳过了自定义的拦截器和处理器
解决方法: 现在我的解决方法是不用上面的配置, 直接标签贴在方法上
@requestMaping({“/”,”/index”})