2020-06-04 16:12

AutoBindRoutes 这种东东打到 exe 中去以后不一定工作正常,改成 jfinal 官方的路由用法即可

注意:所有的 AutoBindRoutes 这类扩展都不是 jfinal 官方的,jfinal 一直不提倡这种用法

2020-06-04 16:11

外层对 map 迭代
#for (x : map)
#(x.key)
#(x.value)

内层对 map 的 value 迭代
#for (y : x.value)
#(y)
#end

#end

当然,如果你不需要对 map 迭代,只需知道得到 list 的 key 即可,下面假定 key 为 listKey
#for ( x : map.get("listKey"))
#(x)
#end

总之,用法跟 java 几乎一样,只不过无需指定类型

2020-06-04 15:39

@yuwen01 用 enjoy 的 #define 封装一些常用的函数,里头放一些常用的 js 代码

2020-06-04 14:54

@谢 enjoy 很多好用的功能,好多人都没用上呢

2020-06-03 19:49

@BTMTimor 看来好多人都这么用过

2020-06-03 17:18

@Dull 用上 JFinalJson.addToJson 挺好的

2020-06-03 17:12

@Dull 使用 Timestamp 的情况,一般是需要 时、分、秒的, 所以 JFinalJson 的默认配置就挺好用的

你的需求是不需要 时、分、秒,所以,我建议你使用 mysql 的 date 类型,而不是 datetime 类型,因为有些浪费

2020-06-03 17:09

@cqztt 控制台下面执行 javac 命令,找不到命令证明是 JRE

2020-06-03 17:07

@Dull 那个配置仍然只是局部的, 用我介绍的配置方法才能成为全局的

2020-06-03 17:05

通过 JFinalJson.addToJson(Timestamp.class, (v, d, ret) -> {}); 这种扩展方式,你可以针对任意类型去定制转换规则

没有比这更彻底、简单、舒爽的扩展方式了

2020-06-03 17:04

jfinal 4.9 重新设计了 JFinalJson 模块,采用了全方位扩展结构,所以要实现你这个功能极度简单:
JFinalJson.addToJson(Timestamp.class, (v, d, ret) -> {
Timestamp t = (Timestamp)v;
String s = ret.getFormat("yyyy-MM-dd").format(t);
ret.addStrNoEscape(s);
});

由于 Json.java 中并不支持 timestampPattern 配置,所以该配置仅仅是 JFinalJson 内部使用的,所以你当前无法简单地通过配置解决问题

在你不扩展的情况下,只可以临时指令 timestampPattern,例如:
JFinalJson.getJson().setTimestampPattern(...).toJson(...);

上面的临时指定不是全局配置,需要每次都要调用一下那个 setTimestampPattern

2020-06-03 16:48

又是一个基础错误,注意看异常信息:
A full JDK (not just JRE) is required

也就是说你的运行环境是 JRE 而不是 JDK

JSP 是被 JDK 中的相关工具态编译的,而 JRE 为了节省体量去除了一些工具体的程序,而编译工具就是其中被去除的部分

解决办法:
1:卸载 JRE, 下载安装 JDK
2:注意要配置好环境变量

2020-06-03 15:49

@zhtian nginx 配置 root 也是可以的,可以指向多个资源目录


jetty-server 与 nginx 配置合使用的话,只能配置 nginx

jetty-server 独立使用,也有配置,网上找一下配置方法

2020-06-03 15:33

@cqztt jfinal 1.8 应该也有这两个配置,你检查一下

2020-06-03 15:26

@逍遥一生 除了加这个,最好还加上这个判断:
if (inv.getReturnValue() != null) {
...
}

当返回值为 null 的时候,证明 action 方法返回为 void,例如:
public void index() {
}