sql模板全局变量如何定义

e1.pnge2.png

模板函数全局可用,变量如何全局可用?

评论区

要输就输给追求

2019-11-27 11:47

sql模板是没有set指令的。sql模板只有 namespace sql para 三个指令。其它指令需要自己扩展

flyinkeke

2019-11-27 11:49

@要输就输给追求 但是文档上说了:除了以上三个 sql 管理专用指令以外,jfinal 模板引擎的所有指令和功能也可以用在 sql 管理

chcode

2019-11-27 11:53

@flyinkeke 所有指令都可以使用的

要输就输给追求

2019-11-27 11:56

@flyinkeke 好吧。我看漏了

flyinkeke

2019-11-27 15:55

@JFinal 把set改成setGlobal,写到最外面的all.sql中, 在sql中用#(name)还是取不到值,只能写到#sql() 后才能取到值。

flyinkeke

2019-11-27 18:12

@JFinal 1.定义sql
#sql("init")
#setGlobal(testUid = -1)
#end
2. onStart调用
Db.getSql("init");

报错
java.lang.NullPointerException
at com.jfinal.template.stat.Scope.setGlobal(Scope.java:162)
at com.jfinal.template.expr.ast.Assign.assignVariable(Assign.java:108)
at com.jfinal.template.expr.ast.Assign.eval(Assign.java:95)
at com.jfinal.template.stat.ast.SetGlobal.exec(SetGlobal.java:55)
at com.jfinal.template.Template.render(Template.java:78)
at com.jfinal.template.Template.renderToString(Template.java:98)
at com.jfinal.plugin.activerecord.sql.SqlKit.getSql(SqlKit.java:147)
at com.jfinal.plugin.activerecord.DbPro.getSql(DbPro.java:1262)
at com.jfinal.plugin.activerecord.Db.getSql(Db.java:663)

JFinal

2019-11-27 19:10

@flyinkeke 不能这么用,看错了

JFinal

2019-11-27 19:12

@flyinkeke 通过下面的代码:
arp.getEngine().addSharedObject(全局变量名, value);

flyinkeke

2019-11-28 10:57

@JFinal 好的,这个是知道的。只是希望用模板实现,不用编译,改起来方便。多谢波总。

热门反馈

扫码入社