全局500/404处理

目前使用Jfinal构建的web服务,既要满足自身页面需要(前后端混合开发),又要满足开放接口(前后端分离开发)。

1.对于前后端混合的,在configConstant里可以通过setError404View、setError500View来解决全局页面跳转。

2.对于前后端分离的,因为要使用JSON形式交互,路由全部加上前缀用以区分。

404已通过实现Hanler已经实现,全局异常处理使用拦截器也已经实现,但并不能捕获500错误。

如何通过自定义Hanler来实现500错误的json形式返回。



评论区

杜福忠

2022-06-05 14:51

通过继承ActionHandler虽然可以处理500,但是新版JFinal是内置了JSON错误格式的,以及支持其配置自定义返回JSON格式

JFinal

2022-06-05 15:54

新版本可以配置针对 json 请求的响应值:
me.setErrorJsonContent(...)

具体用法如下:
me.setErrorJsonContent(404, Ret.fail("404 Not Found").toJson());
me.setErrorJsonContent(500, Ret.fail("500 Internal Server Error").toJson());

azzcsimp

2022-06-06 16:20

@JFinal 这样设置是全局处理吧,主要想对不同请求做响应区分,内建的页面还正常渲染到500错误页面,接口请求响应json数据