当前位置: 代码迷 >> 综合 >> 过滤器对指定的路径不进行过滤的方法 filter exclude path struts fckeditor date datetimepicker
  详细解决方案

过滤器对指定的路径不进行过滤的方法 filter exclude path struts fckeditor date datetimepicker

热度:85   发布时间:2023-12-10 20:00:16.0

问题是这样的,工程中使用了struts提供的 sx:datetimepicker 这个widget,这个widget就是用来选择日期的,挺好用的就用了。另外编辑器使用fckeditor。之前使用struts的过滤器StrutsPrepareAndExecuteFilter的时候指定的url-pattern都是使用/*,也就是所有请求这个过滤器都将处理,后来发现fckeditor的上传功能经过上面过滤器时会发生错误(当然这里我们是不希望上面的过滤器对fckeditor的上传文件进行过滤操作的)。然后就把url-pattern做了修改,例如改成/struts/*,这样所有归struts处理的请求都要指定的url-pattern为/struts/*,而fckeditor则使用默认的<url-pattern>/fckeditor/editor/filemanager/connectors/*</url-pattern>。这样基本上没问题,直到有一天发现<sx:datetimepicker这个widget既然显示不出来了,后来参考了<sx:head的一些说明,以及自己的推断,应该是资源没有加载进来导致无法显示,<sx:head中有设置资源是只加载一次进来以后只需要从缓存中读取,还是每次都去加载,我设置为从缓存中读取,当我把url-pattern改为/*后可以正常显示,然后再改为/struts/*后还是可以正常显示,原因就是因为后面读取资源是直接冲缓存中读取的缘故。

目前为止还是没发现这个资源如何配置的,所以没办法还是要把url-pattern恢复为/*,然后过滤器进行过滤时要把/fckeditor/editor/filemanager/connectors/*路径排除在外。最简单的方法就是我们写个过滤器,这个过滤器继承StrutsPrepareAndExecuteFilter,然后在它的doFilter中对路径进行判断&#x

  相关解决方案