是这样的,我用spring的mvc 在wed.xml配置了
encodingFilter
*.html
来过滤以html为后缀的请求,都是映射到jsp页面的,问题是,我如果真的要调用一个html的静态页面时那我该怎么办?因为如果有html作为后缀肯定要被截获的,前提是我不打算修改上面的过滤配置了,其实这个html页面是我用到了fckeditor编辑器组件,它里面非要调用一个html页面,所以非常不好办,有解决办法的朋友希望不吝赐教!!
[b]问题补充:[/b]
如果不做处理肯定是要出错的,因为通过这个*.html请求找不到对应的jsp就会报错,当然改掉这个后缀是一个方法,但是如果要改的地方太多就有点麻烦了(比如已经写到代码中的转向也要改),当然如果都没办法这也算个办法吧,呵~~,再等等看有没好的建议!
[b]问题补充:[/b]
解决了,只要将那个静态的页面改为同名的jsp页面,然后再配置一下映射,只要是请求这个静态页面的就转向这个jsp就行了,我还是把分给这些朋友吧!!
这个情况我曾经在一个项目中遇到过,开始的时候没有引入fckeditor,觉得用*.html很好很强大,别人看url也不知道是不是转换过,也一直没出现啥问题。后来要引入一个编辑器,就选择了fckeditor,麻烦就来了,跟你现在遇到的状况一样。当时也没找到别的解决办法,就改成*.shtml了,其实改起来很快的。一个全局搜索,限定jsp和xml文件,直接就替换完了。
映射到jsp页面?你的意思是被拦截后其实是显示一个jsp页面?
就算给拦截也没什么关系吧,不做处理就可以了。
这个确实不好办,貌似spring的mvc没有排除的过滤钩子。
最好过滤匹配模式不要配成*.html或*.htm
其实加一个s也是很好看的*.shtml
通过这个*.html请求找不到对应的jsp就会报错
hack source,能否修改这个处理,找不到jsp就试图寻找html。。这样的办法应该也不算复杂
没办法就改后缀名罗。。麻烦点也没办法,用eclipse在整个项目搜索,看看工作量是怎样的。html的后缀太常用了,呵呵
单独写个filter也可以吧,在springmvc之前拦截,直接返回一个html
dofilter里边,直接这样?
req.getRequestDispatcher("xxx.html").forward(req, rep);
全局替换还算不错,就是怕遗漏呀。先计划工作量,回头要安排人员复检比较有保证
自己写一个filter,放在springmvc的前面拦截一下,在这个filter里面判断如果是fck的html就forward一下,然后不调用chain.doFilter了。