2020-05-30 11:48

这个办法好,点赞 + 收藏

不过在 jfinal.com 上还用不了,因为首页的下载被重定向到了一个纯 nginx web 服务上,没有使用 jfinal undertow

2020-05-29 19:22

@liming_code 有支付功能,简单好用

2020-05-29 18:19

@JFinal 没字段,你可以用 #(price), 然后向 templateByString(...) 传入 price 变量就可以了,代码在上面已经给出了

2020-05-29 18:16

@liming_code jfinal 俱乐部项目 jfinal-club 中几乎全是 ajax 提交,有需要可以加入俱乐部:
https://jfinal.com/club

花了钱的其实是最省钱的,时间很值钱, 不是人人都懂的道理

2020-05-29 14:44

jfinal 的 active record 模块的 sql 管理功能极度强大、方便,一定要用上

这个功能可以在外部文件中管理 sql , 也可以在 java 代码中写 sql 模板来使用,通过 Db.templateByString(...) 就可以用上了

文档中非常详细:
https://jfinal.com/doc/5-13

2020-05-29 14:43

你的 sql 中只有一个问号,但你传入了两个参数,所以是错误的,改成下面这样:
Db.update("UPDATE CSAlogin SET RmbPoint=RmbPoint + price WHERE mobile=?", mobile);

如果你要添加的这个 price 并不是数据库中字段的值,改成下面这样来做:
String sql = "UPDATE CSAlogin SET RmbPoint = RmbPoint + #(price) WHERE mobile= #para(mobile)";

Kv kv = Kv.by("price", 这里填入你希望的值).set("mobile", mobile);
Db.templateByString(sql, kv).update();

2020-05-29 14:38

回到你的碰到的问题本身,我建议你远程调试一下:
https://jfinal.com/feedback/5106
https://jfinal.com/share/1528

2020-05-29 14:36

@tyroxyz 直接拼 sql 是极度危险的,有被 sql 注入的风险,像下面这样使用:
String sql = "UPDATE #(table) SET duration_min = #para(durationMin) ,update_time=#para(updateTime) ... #if ( 0 < status) #para(status) #end ";

Kv kv = Kv.by("table", 表名).set("durationMin", durationMin).....;
updateRet = Dao.templateByString(sql, kv).update();

也就是说,在 java 代码中可以使用 String 变量的形式来使用 sql 模板,极度方便

2020-05-29 11:43

jfinal 本身的行为并不是这样的,估计你们改过代码,或者 sql 写得不对

建议单步调试跟踪一下,看是哪个环境出现的问题

2020-05-29 11:41

@天晴 具体可以看一下 JFinal 的 ActionHandler 从 116 行代码开始的地方

2020-05-29 11:40

@天晴 配置好 log4j.properties,有异常不要自己在 catch 中吃掉即可被 jfinal 做日志

2020-05-28 21:31

@himans 这个 sameSite 属性是不是一个独立的 cookie ?

还是说这是在原有 cookie 上附加的另一个值?

前者就是这样用的:
setCookie("sameSite", ...)

后者是这样用的:
setCookie("myCookie", "myValue; saveSite=...");

2020-05-28 20:34

@laofa 这个就在 jfinal 领域之外了,有些轮子还是不要重复去造为好,节省资源