2023-11-28 18:25

刚刚用 enjoy 现有指令实现了,你试一下:

public static void main(String[] args) {
String t = "#set(test=[1,2,3,4,5,6,7,8,9])" +
"#for(item : test)" +
"#if( for.index % 4 == 0 ) <div style='width:100%'>\n #end" +
"\t\t<span style='padding-right:10px'>#(item)</span>\n" +
"#if( for.count % 4 == 0 || for.last) </div>\n #end" +
"#end";

Engine.use().getTemplateByString(t).render(System.out);
}

2023-11-28 18:13

能扩展 #for 指令那必然是对 enjoy 原理有很深理解,这个扩展很有深度,谢谢分享

这个需求如果没有扩展确实还不太好实现

2023-11-21 19:15

@欲风217 生产环境 devMode 建议设置为 false。生产环境即便设置成 true 也不支持热加载,有判断

2023-11-15 23:58

有些配置可能是 druid 后来的版本添加的,所以就没添加上,有些是不那么常用的也没加,通过 getDataSource() 再强制转换成 DruidDataSource 类型后,可以为它配置一些参数

2023-11-15 23:58

换驱动试试,感觉是驱动的问题:

https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc

最新的驱动在这里:
https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc

而不是这里(这里的过时了):
https://mvnrepository.com/artifact/com.microsoft.sqlserver/sqljdbc4

2023-11-15 23:57

将日志级别由 error 改为 info 会有更详情的日志出来

打印 sql 日志参考这个:https://jfinal.com/share/492

2023-10-31 18:09

batchSave 可能不支持返回主键 ID , 你执行完,看一下 model 中是不是有主键值了

2023-10-31 18:08

@yjjdick1990 jfinal 会处理好这个问题,显然是该字段的值为 null , 所以保存时为 null, 建议将该字段设置为不允许为 null, 这样在碰到问题时能及时抛出异常

2023-10-29 21:06

现在一般不这么玩了,而是在业务层返回 Ret 对象,因为验证代码与业务代码在一起成为一个整体,安全性更高,可读性更好,例如:

class LoginService {
Ret login(String userName , String password) {
if (checkAccount(userName, passord) == false ) {
return Ret.fail("用户名或密码不正确 ");
}
其它逻辑代码在此....
}

2023-10-24 16:07

@蜡笔小新 IDEA 改动 pom.xml 要点击 maven 面板的刷新按钮,常规操作

2023-10-24 15:30

去掉这个依赖javax.servlet-api,这个已包含在 jfinal-undertow 依赖之中,如果添加,反而会出问题,IDEA、eclipse 对依赖的处理有差异

2023-10-10 13:33

这是什么数据库? 字段类型能空着? 没见过这种玩法

2023-10-04 16:33

在 SpringBootConfig 配置的 Engine 对象与你 Engine.use() 获取到的是不同的对象,有两种办法,一种是使用前者:
JFinalViewResolver.engine.getTemplate("test.html");

另一种是先配置:
Engine.use().setToClassPathSourceFactory().setBaseTemplatePath("/templates/");

然后再使用:
Engine.use().getTemplate("test.html");

Enjoy 模板的各个 Engine 对象是独立配置的,可分别用于不同的用途,知道这点就能轻松拿捏了

2023-09-21 00:58

可能是 sqlite 的驱动不对,看看 pom.xml

还有一个解决办法是,先不管 jfinal 这边, 先用纯 JDBC 将 sqlite 跑起来,然后用跑起来的配置用于 jfinal 配置

因为 jfinal 底层就是用的 JDBC, 仅仅对 JDBC 做了极薄封装,所以,能在 JDBC 上用的配置就一定能在 jfinal 中用