2017-04-05 20:16

@goodjfinalx @quiet_cai 解决办法极其简单,扩展出一个 Eval 指令出来,大致这样:
public class Eval extends Directive {
public void exec(Env env, Scope scope, Writer) {
String content = exrpList.eval(scope);
String result = Engine.use().getTemplateByString(content).renderToString(new HashMap());
write(wirter, result);
}
}

做好以后添加: me.addDirective("eval", new Eval());
用的时候这样:#eval(article.content)

jfinal 3.0 在发布前曾想做这样一个指令,但由于担心 eval 会被人误用带来一定的安全隐患,这个功能暂且留给开发者自己去扩展着玩

如果要做得更好,可以创建 Parser 对内容进行解析得到 ast 以后执行,连 Engine.use() 都不再需要了

2017-04-05 17:37

@airfish 还没解决? 一般来说碰到过这种问题都是一会就解决了,细心去调试一下找到调用是谁发起的就可以解决

2017-04-05 17:35

目前版本的 jfinal 3.0 只能去改源码来扩展一下,因为 addSqlTemplate 只支持 String 参数,需要再提供一个支持 IStringSource 的 addSqlTemplate 方法对外开放的 API 才能方便去扩展这个功能

这个功能后续考虑做进去,目前建议直接修改 jfinal sql 管理模块的源码,简单粗爆

2017-04-05 17:32

@quiet_cai 道理很简单,将这种用法用在 jsp、freemarker、velocity 等等任意的一款模板都是一样的结果,例如在数据库中存放一个 ${value} 数据,然后在 jsp 中使用一样会原样输出,不会被解析

2017-04-05 17:30

@quiet_cai 你的数据内容存放在了数据库中,而这部分内容并不是模板的一部分,只是模板中的一个变量而已,自然就不会被解析了

2017-04-05 16:04

不带参以及带 int 参的 getPara 系列的方法就是操作的 urlPara ,没毛病

2017-04-05 16:01

扩展的指令通过 engine.addDirective 方法添加进去了没?

2017-04-05 14:29

先下载首页的 jfinal demo for maven 在本地跑起来,然后再自建项目

2017-04-05 14:28

mvn compile 看是不是 jar 包没正确下载

2017-04-05 13:23

经常有人不记得如何给 like 传参,感谢分享

2017-04-04 22:39

@pp 这是很好的分享啊,直接发个贴子到分享频道,很多人需要这个,发完贴这个回复可以删掉了

2017-04-04 20:47

客户端的问题,通常是客户端没有按 http 的格式来上传。浏览器的表单提交一般不会出现这个问题,相信你是用的非浏览器的客户端,例如 flash 或者 android 客户端等程序

解决办法很简单,让客户端按 http 标准去做就好

2017-04-04 15:45

加入任何一个 jfinal 官方 qq 群,找一下群主。这里的回复功能不支持截图

2017-04-04 15:23

@tobecontinue KlassSeoInter 是用于专用目的的,你可以不需要这个东东,这个功能在做起来的时候,仅仅是用拦截器去生成 sql,多动手调试一下就可以解决

2017-04-04 15:19

@大个 通过支付宝捐助 199 的方式加入了俱乐部,解决了支付宝加入俱乐部的问题,甚爽