2020-06-10 16:14

@谢 jfinal 的方案要考虑的事情比这多多了,建议用官方的方案,适应性更好

2020-06-10 15:40

补一下,还需要为 DruidPlugin 添加一个 filter:
druidPlugin.addFilter(new StatFilter());

2020-06-10 15:39

jfinal 俱乐部项目的配置如下:
public void configHandler(Handlers me) {
me.add(DruidKit.getDruidStatViewHandler()); // druid 统计页面功能
}

public static DruidStatViewHandler getDruidStatViewHandler() {
return new DruidStatViewHandler("/assets/druid", new IDruidStatViewAuth() {
public boolean isPermitted(HttpServletRequest request) {
String sessionId = getCookie(request, LoginService.sessionIdName);
if (sessionId != null) {
Account loginAccount = loginSrv.getLoginAccountWithSessionId(sessionId);
return AuthCacheClearInterceptor.isAdmin(loginAccount);
}
return false;
}
});
}

访问地址:
localhost/assets/druid

按照上面的办法基本照抄就可以

2020-06-10 14:48

配置: me.setJsonDatePattern("yyyy-MM-dd HH:mm:ss")

功能早就有了,就看你用不用

2020-06-10 12:32

看不出是什么问题,而且异常信息中完全没有 jfinal 的字眼,不好判断

2020-06-10 12:31

@PL23K 这个需要贡献者提交代码,我自己没用过这些数据库,我提供的话担心会有不完善的地方

2020-06-10 12:30

com.jfinal.render 包下面的 Render 可以直接 new 出来,然后初始化一下就可以调用 render() 方法了

一般不建议这么用, @杜福忠 的办法更好

2020-06-09 23:09

@tctc4869 每个用户的请求处理都在独立的线程中完成,这些线程是由 tomcat、jetty、undertow 等容器保障的

每次请求,controller 对象会被重新创建,每个用户独享一个独立的 Controller 对象,自然也就不存在线程安全问题,就跟一个人单独访问的效果是一样的

Controller 每次被创建的代码在 ActionHandler 中的 controllerFactory.getController(...) 中

2020-06-09 19:44

@lyh061619 第一条补充有价值,第二条是为啥?

2020-06-09 18:55

Controller.getPara() 在底层调用了 HttpServletRequset.getParameter(...),调试跟踪进入 Controller 内部代码可以很清楚看到原理

2020-06-09 17:24

当然,你也可以使用 Date.after(...)、Date.before(...) 来比较日期的大小:

#if( data.record.send_date.before( data.record.task_end_date) )
...
#end

2020-06-09 17:23

文档已强调过不要在表达式中使用字符 '#':
https://jfinal.com/doc/6-4

注意看文档 6-4 最后一小节

此外,date 类型的数据不能直接使用比较表达式,但你可以这样来比较:

#if( data.record.send_date.getTime() > data.record.task_end_date.getTime())
...
#end

因为 Date 对象中有一个 getTime() 可以返回 long 型的代表它的时间值

2020-06-09 14:35

去掉引入时的 provided 配置

2020-06-09 12:54

@眼睛想旅行 既然升级,不如升到 4.9, 就差一个版本,但爽不少

2020-06-09 12:23

可能是你的 Model 没有生成 getter 方法,但是你使用了 fastjson 来转换,而 fastjson 转换是依赖于 getter 方法的

检查:
1:是不是配置了 me.setJsonFactory(new FastJsonFactory()),这能证明是在用 fastjson

2:检查 Contacts 是不是生成了 getter 方法,生成器在 jfinal 官网首页的右侧可以下载 jfinal_demo_for_maven.zip,里面有现成的,直接可用

3:打个断点,看看 Page contanct 中的数据查没查到