(RequestInterceptor.) (){ String strJson = getPara()(!.isJSONArray(strJson) || StringUtils.(strJson)){ .info(strJson)renderJson(ResultJson<>(Global.))} .bathList(strJson)renderJson(ResultJson<>(Global.))}
这样的一个接口,程序需要我返回:addChat.html
2021-05-28 20:00:19,983 [ERROR] [http-nio-30005-exec-10] ActionHandler.handle - /chat/addChat
com.jfinal.render.RenderException: Example : error : cannot find template /WEB-INF/template/chat/addChat.html
Caused by: org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource '/WEB-INF/template/chat/addChat.html'
我看到有说用
renderJson
返回不是不用返回界面吗?为什么还报这个错?之前有成功过,现在报错?
项目:JFinal
我推测,可能是有个addChat的Action方法。里面代码有try包裹,然后 renderJson在try里面。
当程序运行在try里面时异常了,renderJson被跳过了,并且catch并没有继续外抛,给吃了。
这时候JF正常执行,检测到没有render对象,会默认放一个Action名拼接的一个HTML文件名地址,用于模板文件渲染render(拼接文件名)。但是该文件并不存在,所以就报错了。
上面只是一种推测,可能还有其他原因导致,可以断点追一下代码。要解决上面问题,可以在catch后再次用renderJson返回错误信息。 但是我们一般开发接口服务的时候,都是有一个全局catch返回Json错误信息,然后Controller 中一般并不catch吃掉