2020-07-12 18:36

当然, sql 也写在业务层:

public class UserService {
User dao = new User().dao();

public User getUserByEmail(String email) {
return dao.findFrist("select * from `user` where email = ?", email);
}

...
}

2020-07-12 18:34

jfinal 的 Model 已经帮你实现了 dao 层的事,所以你在用 jfinal 开发的时候无需再自建 dao 层,只需在业务层中这样来用:

public class UserService {
User dao = new User().dao();

public User register(String userName, String password) {
dao.findFirst(...);
}
}

2020-07-11 16:52

最好的办法是在开发的时候将模板放在 src/main/resources 目录或者其子目录下面,然后只需要配置一个 engine.setToClassPathSourceFactory() ,engine.setBaseTemplatePath(...) 基本就搞定了

不要在开发的时候模板放在 webapp 下,而打包时放在 src/main/resources 下,这样增加了一些麻烦

2020-07-11 16:50

下载首页的 jfinal_demo_for_maven.zip,里面有一个打成 fatjar 的文档,严格那照里面的步骤来即可

2020-07-11 16:46

这个需求太偏应用了,好好修改主字段值就好

2020-07-10 23:57

DruidPlugin 中有很多可以配置的属性,其中很多都写了注释:
https://gitee.com/jfinal/jfinal/blob/jfinal-4.9/src/main/java/com/jfinal/plugin/druid/DruidPlugin.java

根据注释选择需要的配置,我记得是可以实现你需要的 keepalive 功能的

其实连接池有一个基本功能就是实现 keepalive

2020-07-10 21:14

刚刚已经改进了这里:
https://gitee.com/jfinal/jfinal/commit/900b4ac402bcdc1e2fb3c9bec08a9c9e6493689f

用下面的方法用上最新版本:
https://jfinal.com/share/2093

然后尽快给我反馈,这样可以确保线上的版本是没问题的

除了你反馈的 hgetCounter 以外,顺便改进了 getCounter 这个方法,希望你也帮忙试一试

2020-07-10 16:40

getFile("file"); 中的参数 "file" 对应于你客户端的 elem: '#file',进而对应你的 input type="file" name="flile" 的表单域

解决办法是,要么让前端的 name = 的值与 getFile 参数一致,要么不带参,例如:
getFile();
getFiles();

2020-07-10 16:38

引起该异常的原因有两个:

1,如果一端的Socket被关闭(或主动关闭,或因为异常退出而 引起的关闭),另一端仍发送数据,发送的第一个数据包引发该异常(Connect reset by peer)。

2,一端退出,但退出时并未关闭该连接,另一端如果在从连接中读数据则抛出该异常(Connection reset)。简单的说就是在连接断开后的读和写操作引起的。

参考这里:
https://www.cnblogs.com/insane-Mr-Li/p/11114578.html

2020-07-10 15:24

配置改成下面的更好:
restart.include.thirdparty=/enjoy-[\\w.-]+.jar

不用关心版本升级

2020-07-10 14:30

你配置了下面这两个东东:
me.setToClassPathSourceFactory();
me.setSourceFactory(new MyClassPathSourceFactory());

其中第二个配置会覆盖掉第一个配置,因为这两个都是在配置 SoruceFactory


此外,如果你的模板在 classpath:templates文件中,可以这样配置:
me.setBaseTemplatePath("/templates");
me.setToClassPathSourceFactory();

然后用的时候就可以省去 "/templates" 目录,例如:
render("/index.html");

2020-07-10 11:54

先试试这个:
UndertowServer.create(...)
.configWeb(web -> {
web.addListener("...");
web.addInitParameter("...", "...");
})
.start();

如果上面这个不行,试一下这个:
UndertowServer.create(...)
.configWeb(web -> {
DeploymentInfo di = web.getDeploymentInfo();
di.xxx(...); // 这里调用 di 内的一些方法尝试实现功能
})
.start();
先通过 web.getDeploymentInfo() 获取到一个 DeploymentsInfo 对象,然对所有配置都可以通过这个对象中的方法来配置

2020-07-09 21:12

参考这些项目:
https://gitee.com/Danjinsong/JFinal-JwtTokenPlugin
https://gitee.com/wz2520020/jfinal_jwt
https://gitee.com/andrewtsengvip/jfinal-redis-jwt-master

https://search.gitee.com/?skin=rec&type=repository&q=jfinal%20jwt&repo=&reponame=

2020-07-09 13:55

缺少很多信息量,例如:
1:用什么字段存的图片
2:图片是存的文件名与路径还是文件内容
3:表单 input 的 name 是怎么写的
4:图片比较少与比较多是什么意思?

2020-07-08 11:15

@zzutligang 只要是 JFinalJson.setXxx(...) 这种以 JFinalJson 打头的配置方法,全都是只针对 JFinalJson, 不影响 FastJson、Jackson ,各管各的配置

通用配置需要配置:
JsonManager.me().setXxx(...) 这个配置是管所有 json 实现的,注意看文档:
https://jfinal.com/doc/12-2