如上图。使用#para()赋值时,cond中并没有传name。sql中生成了一个问号,jfinal在sqlPara中自动用null补齐了这个参数。导致执行时不报错,返回表中的所有记录(如果sql中用name = #para(name),返回空)。我希望让他报错,我自己再处理异常。请问有哪里可以设置不?
public class MyParaDirective extends ParaDirective
在 MyParaDirective 中覆写一下 exec(...) 方法,将原来的 ParaDirective.exec(...) 方法中的代码全 copy过来,改掉下面这一行代码:
sqlPara.addPara(exprList.eval(scope));
上面代码改成:
Object value = exprList.eval(scope);
if (value != null) {
sqlPara.addPara((value);
}
最后配置一下就可以了:
1:arp.getEngine().removeDirective("para") 先移除老的 para 指令
2:arp.getEngine().addDirective("para", new MyParaDirective()) 再添加自己扩展后的指令
sql 管理功能中的三个指令本身也全是扩展而来的,大家可以用类似的办法自由定制自己需要的指令
记得搞后来回来分享一下