【JFinal】404问题

00oo 发布于 2015/06/23 15:59
阅读 423
收藏 0

错误页面配置完毕,如下:

me.setError404View("/error/404.html");
me.setError500View("/error/500.html");

500错误页面正常显示

404页面对于action访问正常显示,即当访问“http://localhost/u/error”时,如果该action不存在则正常render到404页面。

但是如果访问“http://localhost/u/error.html”,如果该页面不存在,则无法正常render,而是返回jetty的404页面,JFinal这里如何配置也可以拦截此类404问题?

加载中
0
00oo
00oo

引用来自“JFinal”的评论

     如果直接访问  .html 这类静态资源文件,由于 action 只处理静态资源,所以会先放行。解决办法是使用一个 MyHandler extends Handler,在其中使用一下 HandlerKit.render404(...)即可打完收工。

    JFinal 的 Handler 可以接收到所有请求,包括静态资源请求。

if (target.contains(".jsp") || 
    target.contains(".html") || 
    target.contains(".htm")) {
    HandlerKit.renderError404(request, response, isHandled);
}else {
    nextHandler.handle(target, request, response, isHandled);
}

是这样做吗?



00oo
00oo
回复 @JFinal : ok! ^.^
JFinal
JFinal
回复 @00oo : 当然可以
00oo
00oo
回复 @JFinal : 非常感谢!这个可以作为答案吗?
JFinal
JFinal
差不多就是这个方向
1
孤星可
孤星可
因为jfinal对于末尾带.的url是递交给容器处理的,所以要处理这样的404问题,需要自定义handler
0
JFinal
JFinal

     如果直接访问  .html 这类静态资源文件,由于 action 只处理静态资源,所以会先放行。解决办法是使用一个 MyHandler extends Handler,在其中使用一下 HandlerKit.render404(...)即可打完收工。

    JFinal 的 Handler 可以接收到所有请求,包括静态资源请求。

返回顶部
顶部