Jfinal有关render404,render500的处理问题

欧少 发布于 2012/04/11 16:22
阅读 1K+
收藏 4
请教,Jfinal 在render404, 500 或者其他异常时, 如何处理?是否能终止后续拦截器  以及相关操作的执行
加载中
0
无聊的人们啊
无聊的人们啊
个人认为应该终止,因为都已经报错,就没有必要向下执行了,如果后面的代码用到前面的东西就会发生500错误。也可以中庸一点,弄个参数。
0
JFinal
JFinal
JFinal中的Controller中的render404() render500()目前采用方式与其它类型的Render一样。这两种情况我正考虑是否要直接跳出当前正执行的代码,而直接去render。带参的方式实现也是一个办法,但使用抛出异常的方式可能更好些
俸志刚
俸志刚
感觉还是之前的方式较好: 1)保持与其他render一致的行为,易于理解; 2)既然是controller中显示调用renderError500,说明代码编写者已经掌控局势,再抛出异常,不合理! 3)不存在需要终止后续代码的需求,其他render会在render后再执行别的代码吗?
0
JFinal
JFinal
经过慎重考虑,新版本对renderError404 renderError500的工作模式做了改变,当开发者调用renderError404或renderError500时,将跳出当前执行流程,直接render错误页面。目前新版本中的相关代码已经全部更新。敬请关注下一版JFinal  1.0.6
jkluooop
jkluooop
我后来是在拦截器里redirect到一个error.jsp输出json错误文本。 controller里用renderText(jsonText),然后ajax返回的时候用eval转了一下文本成json对像。觉得有点绕。
jkluooop
jkluooop
额,看这个,我想起我用jfinal的一个麻烦点。 ajax提交到一个带拦截器的cotroller,通过,执行controller的方法,返回json,不通过验证,需要在拦截器里返回json. 不知道怎么做到。
0
Dreampie
Dreampie
http://www.oschina.net/p/jfinal-dreampie   15条    json数据请求时,返回的error信息使用json字符串
public class JsonErrorRenderFactory implements IErrorRenderFactory {
  public Render getRender(int errorCode, String view) {
    if (ThreadLocalUtil.isJson())
      return new JsonErrorRender(errorCode, view);
    else
      return new ErrorRender(errorCode, view);
  }
}




返回顶部
顶部