2018-02-02 18:08

@怎懂落寞 这个是正解, 你的 form 表单添加了 enctype="multipart.... 这个东东,会走 http 的文件上传,后端需要用 getFile() 方法先解析

2018-02-02 17:32

这种情况只需要 activeRecordPlugin.addSqlTemplate(new DbSource()); 就可以实现了

此外,如果你是在 jfinal 的 web 下使用,既然有了 me.add(druidPlugin) 与 me.add(activeRecordPlugin), 那么 druidPlugin.start() 与 activeRecordPlugin.start() 是多余的

2018-02-02 17:21

@怎懂落寞 将第三个参数 "/key/" 改成 "/blog/" 即可,纯粹就是一个字符串相加而已,有些字符串是常量,有些是变量表达,与 java 规模完全一样

2018-02-02 17:18

看是不是这个问题:http://www.jfinal.com/feedback/2429

2018-02-02 12:04

RedisPlugin 配置实例: http://www.jfinal.com/doc/8-2

2018-02-01 19:59

这里的关键问题是,在程序走到你的 render 代码之前不方便猜测你后面到底render 了没有,以及 render 的参数是什么

当然,也不是绝对没有办法,例如写一个分析器,分析你的源代码,先预分析你的程序结构,分析到的结果做为自己这部分程序的行动指南

我再说的直白一点,你下面有三行代码:
int a = 123;
int b = a + 456;
render("index.html");

然后我希望在 int a = 123; 这行代码这里就知道第三行代码的 render 里头有什么参数,而这个时候程序还没走到第三行呢

2018-02-01 19:55

使用 form 表单的形式,或者 form 表单传参的机制提交数据,不要将参数放在 url 中,要放在 http body 中传递

2018-02-01 19:51

NullPointerException 这个异常没有什么好的办法,认认真真单步调试一下,看哪个对象是 null 值,再解决之

2018-02-01 17:44

@sevenZLL 先转成 List《Map》,然后将 Map 转 Record

Record 中有个 setter 方法,支持传入 map,just do it

2018-02-01 17:07

@怎懂落寞 key 仅仅是个字符串常量,你也可以写成 "abc", value 是变量,可以是后端通过 setAttr("vaue", 123) 传过来,也可以是通过 #set(value = 456) 传过来,还可以是通过 engine.addSharedObject("value", 789) 传过来

这都是是 jfinal 模板引擎的基础,看一下文档,省下无数时间

2018-02-01 16:41

@188085240 sql 管理的模板引擎默认用的 FileSource,这个就代表从文件中读取 sql 模板内容,而你可以模仿 FileSource 写一个 DbSource,改而从数据库读 sql 模板内容

做到上面的程度以后,剩下的用法就完全一样了

当然,你存放在数据库中的 sql 模板内容要与存放 sql 文件模板中的内容在格式上要一样,例如下面的格式:
#sql(...)
select * from ...
#end

看下 ActiveRecordPlugin 那一章的 sql 管理相关文档

2018-02-01 16:34

paginate 这个模板函数里面有个 append 变量就是干这事的,这样来用:
#set(append="?key=" + value)
#@paginate(...)

注意 paginate 这个模板函数,是指 jfinal 官网提供的 demo 中定义的那个

2018-02-01 16:30

实现一下 ISource 接口, 完成从数据库读取模板内容的功能:
public class DbSource implements ISource {
...
}

然后再实再一下 ISourceFactory,完成 DbSource 的构建:
public class DbSourceFactory implements ISourceFactory {
...
}

配置生效:
activeRecordPlugin.getEngine().setSourceFactory(new DbSourceFactory());

最后在 java 代码中就可以这样来用了:
SqlPara sp = getSqlPara(key);
Db.use(...).find(sp);

注意,以上只是示例,里头有些细节需要你自己完善,单步调试搞清楚原理

2018-02-01 16:22

where keyid=#(keyid) 这个是什么用法? 这个不是在模板中,而是在 java 源代码中

改为:where keyid=?