2018-05-17 22:13

参考 com.jfinal.render.TemplateRender 写一个 ThymeleafRender 出来:
public class Thymeleaf extends Render {
...
}

然后创建一个 MyRenderFactory:
public class MyRenderFactory extends RenderFactory {
public Render getRender(String view) {
return new ThymeleafRender(view);
}
}

最后再 configConstant(Constants me) 中配置一下即可:
me.setRenderFactory(new MyRenderFactory());

用的时候这样:
render(view);

除了前面讲的可以参考 TemplateRender 以外,还可以参考 com.jfinal.render 包下面的很多其它 Render,例如 FreemarkerRender ,都很简单,三四十行代码的事

最后,强列建议直接使用 jfinal 默认的模板引擎,无论是易用性、学习成本还是性能,甩 Thymeleaf 五十条街很轻松

在这里有文档,10 分钟掌握 90% 的用法:
http://www.jfinal.com/doc/2-1

2018-05-17 22:08

@fxxixi 使用如下几个解决方向:
1:配置错误,例如用户名或密码错误,通过使用 navicat 或 mysql 控制台登录可以测试出来

2:第一条中的测试方法要注意,使用的 navicat 与 mysql 控制台与你的项目运行要在同一台机器。因为 mysql 连接是分机器的,mysql 服务端与客户端是否在同一台机器上,这个极其关键

3:如果你拿 windows 记事本编辑过这个配置文件,那么在 jdbcUrl 这个配置前方加一行注释,例如加下面一行:
# jdbcUrl 配置
加这个的原因是 windows 记事本会丢失 utf-8 文件的最前方一个字符,造成 jdbcUrl 不正确

归根结底说就一句话,配置错误

2018-05-17 18:05

@有鱼名为咸 自己稍微看下文档,自己搭一个是分分钟的事情,一定要使用官方建议的路由方式,好处多多

2018-05-17 17:22

@阳光沙滩 写个工具类,然后里头将异步操作放在 new Thread() 之中,不需要的时候就使用常规的方法来访问数据库即可

2018-05-17 17:13

@阳光沙滩 在新创建的线程中来操作数据库就可以实现了

2018-05-17 17:12

@有鱼名为咸 建议使用 jfinal 原生的路由配置方式,不要用注解和扫描来配置路由

jfinal 之所以一直不提供注解与扫描自然是有很充分的原因的

2018-05-17 16:54

404 是最好处理的,如果是路由配置错了,根据 jfinal 文档配置一下

如果是 url 输入错了,改掉 URL

2018-05-17 16:53

什么是异步更新数据?

2018-05-17 16:52

jfinal 官网使用的是首页的 jfinal demo 的配置,也就是你现在的用法,支持 DailyRollingFileAppender, 非常好使,建议直接使用 jfinal demo 的配置

出现 log4j:ERROR Failed to rename ,很可能是 linux 下没有写权限,或者是别的什么原因

2018-05-17 16:51

前端通过 _jfinal_captcha 来获取 cacheKey,可以稍稍看一下 com.jfinal.captcha.CapthaRender.java 源码

2018-05-17 11:11

@lyh061619 这个本质与 jfinal 是完全无关的,jfinal 在后端只是很机械化接收数据而已,纯客户端传值方式的问题

2018-05-17 11:09

这个只需要按照 druid 官方档去做就可了, jfinal 整合的 druid 提供的整合可以当做不存在

因为 jfinal 对 druid 的整合只是方便获取 DataSource 而已,其它的事情不参与

2018-05-17 11:07

@SwainHo jfinal 默认的行为就是只更新你 set 过的字段,model 里头的 modifyFlag 就是干这个事情的

出现这样情况,必定是你 model.set(attrName, null) 这样赋了 null 值进去了,这个本质就是明确指定让 attrName 更新为 null

所以,通常不需要做任何事情就可以了。 如果你一定要 set(attrName, null) 或者 setAttrName(null) ,然后还要希望不要更新 attrName 这个字段为 null,可以任选下面几个方法:
1:model.removeNullValueAttrs().update();
2:model.remove(attrName).update();

你甚至可以用 model.keep(f1, f2, f3) 这样指定只保留 f1、f2、f3 字段,其它全部都不更新

2018-05-17 10:59

jfinal 专注 mvc + orm,这部分的内容还有很多事情要做,别的事情如非必要不要去做

啥都想做的结果很可能是啥也做不精

swagger 这类工具已经很完善了,直接就是最好的选择

2018-05-17 10:57

前端传参不对,仅此而已

传参的时候将整个 json 内容当成了 key,而 vlaue 没有,最后就是这个效果