2019-12-21 21:18

去 maven 库下载:
https://mvnrepository.com/artifact/com.jfinal/jfinal-weixin

2019-12-21 18:14

@VG-NO1 有异常抛出,配置成 warn 或 error 就可以有输出,没有异常信息是没法解决问题的

2019-12-21 16:40

好久没有用 freemarker 了,忘了怎么格式化输出数字类型了,我记得它是可以指定小数点位数的,找找它的官方文档

jfinal enjoy 对此的用法是:
#number( value, "#.##")

2019-12-21 16:38

下载首页的 jfinal_demo_for_maven.zip,将里头的 log4j.properties 文件用上,这样才能在控制台输出异常信息,根据异常信息解决问题

光是看到 internal Server Error 是无法判断原因的

2019-12-20 23:14

虽然不是 jfinal 类型项目,但可以用于 jfinal weixin 开发的本地调试,赞一个

2019-12-20 21:57

@xasyulwx 要看是什么错误,添加了这个配置,错误应该不是上述那种了

2019-12-20 13:00

@idreamblue 在这个贴子里不断追加你的改进代码,我仍然不太知道你讲的方案

2019-12-20 12:59

这里只需要注意优先调用一次 getFile(),然后额外参数的获取方式与原来的完全一样了

要注意一个问题,如果有拦截器的话,拦截器也有获取参数的话,也需要注意先调用:
inv.getController().getFile();

建议改成下面的方式,更好解决:
public void upload(File file, Striing paraentId) {
...
}

注意这里用到了 action 参数注入,需要开启 JDK 的 parameter 参数,见文档:
https://jfinal.com/doc/3-3

用起来挺方便的

2019-12-20 12:11

目前内部有两个处理机制:
1:通过 addMapping(...) 预先映射,对接口、抽象类进行代理时会去找这个映射
2:通过在 @Inject 注解中给定类型,例如:@Inject(Banan.class)

再加其它方式的干预,或许并不适合,建议你自己尝试改一下这里的设计,希望有更好的方案

谢谢反馈

2019-12-18 19:51

刚刚在本地测试了一下,如果使用变量的话不会出现你碰到的情况,例如:
Db.find("SELECT * FROM `test` where id=? ", id);

当参数直接使用 null 值常量的时候才会出现异常:
Db.find("SELECT * FROM `test` where id=? ", null);

而这种使用 null 常量作为 Object... paras 参数的情况是极少的,当然,添加一个 if 判断会更好

希望你在本地再测试一下,看你那里的情况是不是与我说的完全一致,或许你那里的情况更加特别

2019-12-18 19:37

@无翼 这里改进一下可能会更好,谢谢你的建议

你暂时通过继承 MysqlDialect 来解决,也相当方便

2019-12-18 19:34

@小飞象 这个仅仅是序列化算法不同,可以通过指定序列化算法解决

jfinal RedisPlugin 默认使用 fst 做的序列化,可以通过下面方法配置:
RedisPlugin.setSerializer(...);

2019-12-16 21:12

@Dull 你改变的是 scope 作用域中的 user , 验证主法是你在另一个页面再次使用 #(user) 时仍然是 shared object 过来的 user

2019-12-16 17:13

你在正文中的例子是改变不了 user 变量本身的,因为 set 指令操作的对象与 shared object 处在不同的 Scope 空间

如下代码可以改变 user 内部的值
#(user.setName(...))

注意区分 shared object 变量与其他变量的不同用法

2019-12-16 14:11

@天晴 一般使用 pajx 的项目是后台管理之类的,并发访问并不大,这样处理一般没问题

要注意 js 的引入放在 html 的最后一部分,不要放在 html 的 header 部分中,这样也能加快页面展现

再一个,你可以用一用 js 的按需加载机制,用到的时候再加载,也就不会有这个顾虑了