最近想把一个开源im项目与之前基于jfinal写的项目整合起来,查了一些资料后尝试将jfinal项目整合入springmvc,im部分使用正常却怎么都无法访问到jfinal项目中的方法。应该怎么办呢?
1:按正常办法在 web.xml 中添加 JFinalFilter,如果 web.xml 中配置了多个 Filter,则需要将 JFinalFilter 配置在最前面
2:参考 com.jfinal.ext.handler.UrlSkipHandler.java 写一个 MyHandler 用来放行 spring 要处理的路由,大致如下:
public void handle(String target, HttpServletRequest request, HttpServletResponse response, boolean[] isHandled) {
// 如果是 spring 该处理的路由,直接放行
if (isSpringRoutes(target)) {
return ;
} else {
// 这里是交给 jfinal 处理的路由
next.handle(target, request, response, isHandled);
}
}
3:配置一下:
configHandler(Handlers me) {
me.add(MyHandler());
总体上来说 spring 该怎么做就怎么做, jfinal 该怎么用还怎么用,只需要在 web.xml 中添加好 JFinalFilter ,并用一个 MyHandler 分发好路由即可