2018-02-03 18:07

涉及到 sql 拼接,建议用 sql 管理功能实现,极其方便:
http://www.jfinal.com/doc/5-13

查不出来数据的原因很可能是你参数不正确,通过 String.split(",") 得到的参数全部是 String 类型,相信你总有参数并不是 String

所以,参数可以用 ArrayList 存放,然后再 ArrayList.toArray() 转成数组即可

2018-02-03 15:51

@arse7rainman 由于要照顾 java 6 java 7 的用户,所以 JFinal.start(...) 所使用的 jetty 版本仍然是 jetty 8,而 websocket 需要 jetty 9 的支持

你也可以自己在 jfinal 中直接使用 jetty 9 来支持 websocket,参考这里:
http://www.jfinal.com/share/405
https://my.oschina.net/myaniu/blog/470050

这些参考资料在本质上与使用 jetty 8 是一样的,改点 import package 的名字差不多就完成了从 jetty 8 升级到 jetty 9

2018-02-03 15:47

@zhongshg 当拿不定主意的时候,用你已经掌握的 Java 方面规则搞定就可以了

jfinal enjoy 保留了绝大部分 Java 规则,扩展部分极少极少,而且都是有利于开发体验的符合直觉的扩展,例如对 map 的迭代方面的扩展,可以省去你写 map.entrySet() 的代码

2018-02-03 15:45

在 JFinalConfig 中使用 PropKit 与 maven 的 profiles 没有联系, PropKit 只要求在 class path 或者 jar 包内可以找到配置文件即可

2018-02-03 15:06

补充一下,这种对 map 的遍历方式是 jfinal 对 Java 规则的一个扩展,当然,你也可以直接使用 Java 规则来遍历,一点不耽误,将 #for(list:moduleMap) 改成:
#for(e : moduleMap.entrySet()) 然后里头是 e.getKey() 与 e.getValue() 取值,与 Java 规则完全一样

2018-02-03 15:03

遍历的 x : map,取值是 x.key 以及 x.value,而不是对 x 进行再次遍历,解决办法是将 #for(m:list) 改成 #for(m:list.key) 或者 #for(m:list.value)

2018-02-03 15:00

将日志级别调低点, INFO 信息输出太多了

2018-02-03 14:11

@sqhua Active Record 设计模式所决定: 一个 model 对应一条数据表记录,而对应关系统采用主键机制

如果没有主键,你的 model.save() model.update() model.delete() 等操作就根本不可能知道是针对数据表的哪条记录来操作

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 中传递