关于Template Engine的小疑问

@JFinal 波总,问个Template Engine的小问题:

如果我添加了2个静态共享方法:

me.addSharedStaticMethod(A.class);

me.addSharedStaticMethod(B.class);

在页面上直接是使用#(方法名())来调用,那想问下如果有同名的方法呢?该如何调用?好像静态共享方法不能设置别名。

评论区

JFinal

2018-05-14 16:35

同名不同参数也没关系,如果名字也同,参数个数与参数型都相同,在添加 share static method 时会报出错来,不允许,这个是基本要求,不能打破

lantsui

2018-05-14 16:37

就是如果启动的时候会先判断A和B中是否有相同方法名的方法吗?

lantsui

2018-05-14 16:38

还是说也可以通过类名.方法名来调用?

lantsui

2018-05-14 16:43

@JFinal 波总,还有个问题就是如果在页面上引入xxx.js的话,在js中用模板语言,好像不能被识别?

JFinal

2018-05-14 16:49

@lantsui 谁先添加就以谁为准,后来者如果重名 + 参数个数一样 + 参数类型一样则报异常,这是一个极其自然的想法,谁先来谁就添加成功

这个与先判断 A 和 B 中是否有相同方法名完全无关,只与已添加的 method 原型比较即可

类名.方法名来调用属于 me.addSharedObject(...) 范畴,与此事无关

引入的 xxx.js 根本没被模板引擎渲染过,这个与是否识别完全无关,不信的话,你在 xxx.js 中写点模板的功能,然后通过下面的方法:
render("xxx.js") 就知道“识别” 了

JFinal

2018-05-14 16:50

你平常是用的 render("aaa.html") ,则模板引擎是在渲染 aaa.html,这个与你在 aaa.html 中通过 link 标签指向一个 xxx.js 完全无关

lantsui

2018-05-14 17:12

那是否有方法能让在xxx.js中可以使用模板?

JFinal

2018-05-14 17:18

@lantsui 让 xxx.js 走引擎渲染就可以

热门反馈

扫码入社