应用是这样子的,项目主要是做异常请求,在controller有定义带返回参数的action如:
public Object list() {
return xxxcvs.list(getPara(0));
}
当xxxcvs.list(getPara(0))为空时,就会报java.lang.RuntimeException: File not found异常,如下处理:
public Object list() {
List<Record> list = xxxcvs.list(getPara(0));
if (null == list) {
renderNull();
}
return list;
}
才能避免掉出java.lang.RuntimeException: File not found 500错误,这个问题出现,希望框架层做下优化对带有返回参数的action处理,得手动做下null值的处理麻烦。
项目:JFinal
public class MyInterceptor implements Interceptor {
public void intercept(Invocation inv) {
inv.invoke();
if (inv.getController().getRender() == null) {
Object ret = inv.getReturnValue();
if (ret == null) {
inv.getController().renderNull();
}
}
}
}
最后再配置一下即可:
me.add(new MyInterceptor());
当然,你的这种情况很可能不需要判断 inv.getReturnValue(),核心方法简化成下面试试:
public void intercept(Invocation inv) {
inv.invoke();
if (inv.getController().getRender() == null) {
inv.getController().renderNull();
}
}