2020-01-30 11:11

代码质量高,功能丰富,已 star + fork,以后用得着,谢谢你的分享,赞

2020-01-30 11:02

template(...) 方法需要与 #para 指令配合使用,由于这个功能是后加的,所以文档中有一处错误,现已修正

如果不使用 #para 指令,使用 getSql 也是可以的,例如:
String sql = Db.getSql("user.login");
dao.findFirst(sql, "admin", "111111");

2020-01-21 11:20

@任小伊roy jfinal 的 model 中并未做这类相关动作,是不是 JDBC 做了截取动作?

在 ModelBuilder 中设置断点调试一下,看看这个字段获取时的情况

2020-01-20 19:02

@goodsking 这么早就接触并参与开源,前途不可想象

2020-01-20 16:41

在校就知道并使用 jfinal 是十分幸运这的事情

其一, jfinal 代码量很少,只有 29003 行代码,可以轻松完全掌控,通过看源码就能学到 web mvc + orm + aop + template engine 这一整套工作原理。你可以试试去看 spring 源码,庞大、复杂根本看不下去,更别说完全掌控

其二,jfinal 适合在校生做毕业设计、课程设计。研究生适合做老板安全的各种项目,省时省力。保障快速毕业

其三,省去折腾 spring 这类老旧技术,节省生命。我在快毕业时用的是 spring + struts + hibernate,一丁点功能都要写大量代码,过不了多少就会对开发产生反感。

你是幸运的,欢迎加入 jfinal 生态

2020-01-20 16:34

去掉 group_concat 这个函数再试一下,可能是这个函数帮你截取了

2020-01-20 16:33

druid 检查你的 sql 有错误,注意修改一下

也可能是 druid 误报,可以升级一下 druid 版本试试

2020-01-20 16:31

getSqlPara 与数据源有关联,而数据源与 model 有关联,不太好处理这个问题

这个问题应该只会出现在极个别场景,况且没有映射 model 的情况应该使用 Db.template 或者 Db.getSqlPara

2020-01-20 16:26

html 中的资源路径要以 "/" 打头,否则是与你当前 url 有关的,这个是纯前端问题, jfinal 是无法干预的

2020-01-20 16:24

这个问题显然是 jfinal 无法干预的,是底层 JDBC 或者数据库认定你的 sql 是 sql 注入,改改 sql 或者数据库配置试试

2020-01-20 16:21

异常是在说 time out , 检查一下网络通道, 检查前方是否有 nginx 这类反向代理

2020-01-20 16:19

controller 不支持通配符,做一个 handler , 可以结合正则表达式,然后将 String target 这个参数映射到 controller 就实现了通配符功能

2020-01-17 16:02

@hzh740053757 ActionHandler 你可以继承一下,然后改掉里头的东西,最后配置一下:
public void configHandler(Handlers me) {
me.setActionHandler(new MyActionHandler());
}

通过上面的方式可以将 jfinal 默认的 ActionHandler 换成自己扩展实现的 MyActionHandler

jfinal 几乎所有的组件都是可以扩展的

2020-01-17 16:00

@北流家园网 java 的 Instrumentation 机制 + 定制 ClassLoader, 用这两套东西将 JVM 类加载接管过来,然后对于动态改变的 .class 文件进行重加载

重加载修改类并不是最麻烦的,最麻烦的事情是重加载类如果在内存中有对象实例,还需要将这些实例对象进行更新替换

jfinal undertow 用了 ClassLoader 通过重启容器来实现热加载,绕开了很多麻烦事

jrebel 这个第三方是专门实现热加载的,它做得比较细粒度,所以工作量极大,是一个很大的项目,可以参考一下

2020-01-16 20:57

@北流家园网 JVM 不支持热加载,需要通过别的机制