2019-04-21 09:45

@zhuzhuAAA 下载本站首页的 jfinal demo for maven,里头有一个生成器的 demo , 改改输出目录用上就好

生成出来的类,既包括 Model 也包括 Vo 层

2019-04-20 11:45

这个问题纯粹是操作系统的原因,与 jfinal 无关

2019-04-20 11:45

参考这个贴子中的回复:
http://www.jfinal.com/feedback/5217

大致原因是:
问题出在xnio包里底层代码执行new FileOutputStream("NUL:").getChannel(); 的时候报错,最后检查发现是我的系统null.sys文件异常导致,重新下载null.sys文件覆盖然后启动windows服务后就好了

2019-04-20 10:50

@西门吹牛 Permission denied 与 jfinal 以及 undertow 肯定是无关的,找找别的原因

2019-04-20 00:41

drugInfo 是什么类型?

属性表达式是根据对象类型来运作的,注意看这部分文档:
https://www.jfinal.com/doc/6-3

当属性表达式不能使用时,还可以直接调用方法,假定 druidInfo 这个对象所在的类拥有 getPNR() 方法,可以直接调用:
#(drugInfo.getPNR())

也就是文档中一直强调过的:enjoy 的表达式是与 java 直接打通的,有方法就调方法,十分方便

2019-04-20 00:33

@西门吹牛 mac 上默认不让用 80 端口,改成超过 1024 的端口号即可

或者百度搜索: mac 开启 80 端口

2019-04-20 00:31

connection 未关闭属于资源泄漏,并发高的时候 JVM 会挂掉

最后,建议切换到 jfinal undertow,体验更爽

2019-04-20 00:29

你的代码 DbKit.getConfig("sql2000").getConnection() 是自己获取了 Connection 对象,所以需要在 finally 块中关闭它,否则死掉是迟早的事

要这样:
try {
...
}
finally {
DbKit.getConfig("sql2000").close(conn);
}

如果你是通过 DbKit.getConfig(...).getDataSource().getConnection() 获取到的数据源,可以这样来关闭:
try {
...
}
finally {
conn.close();
}

优先使用第一种获取 connection 对象

2019-04-20 00:16

@zeroabc 使用下面的用法:
engine.addSharedObject("Account", new Account());

用的时候这样:
#(Account.STATUS_LOCK_ID)

一行代码,全局通用,简洁方便

2019-04-20 00:14

setBaseViewPath 的作用就是为该 Routes 下所有的 controller 配置一个寻找模板文件的基础路径,模板就在这个基础路径之下或者其子目录之下

2019-04-20 00:13

有关 baseViewPath、viewPath、view 三个参数, 特意添加了文档:
https://www.jfinal.com/doc/3-7

一定要仔细看一看

2019-04-20 00:09

数据库表字段是 int 类型但是生成的 base model 中 Java 属性却是 Long 类型的

原因主要是以下两个之一:
1:字段设置成了无符号整型:unsigned int
2:字段长度设置超过默认值,例如长度设置为 12 就会生成为 Long

这个映射获取的字段类型是 JDBC 自动返回的, jfinal 并未干预过。只要按上面的原因改变一下字段为 "非unsigned int",或者长度使用默认值即可

2019-04-20 00:05

今天在群里看了 jbolt 的视频,挺牛逼的,十分看好这个项目

2019-04-20 00:05

@西门吹牛 tomcat、jetty、undertow 都支持 websocket,配置稍有不同

2019-04-20 00:04

cookie 的交互流程在 Java web 中是这样的:
1:setCookie(...) 并给浏览器响应以后
2:浏览器发送请求到服务端的时候会带上前面 setCookie(...) 过来的值
3:服务端接收到浏览器请求的时候,可以通过 getCookie() 读取

以上流程中可以看到,你无法通过 setCookie(...) 再立即 getCookie(...) 获取到 cookie 值,因为 cookie 值必须是通过浏览器发送过来的