2018-03-26 15:30

@badouyuren 记得分享出来,或许可以改进 enjoy

2018-03-26 15:19

@badouyuren 不是 jfinal 不支持,而是 jfinal 反射使用 java.util.LinkedHashMap$LinkedKeySet 这个内部类时 JDK 不允许,可能是有什么安全策略,具体还没研究过

用 java 代码调用 map.keySet() 是可以的,但是 enjoy 是先获取的 Method 对象,然后 method.invoke() 反射调用的这个 keySet() 方法,所以出了问题

这个问题归根结底是 JDK 不允许这么来调而引发的, enjoy 本身是支持这个功能的

另外,你还可以试试这个:
#for( x : map.entrySet())
#(x.getKey())
#(x.getValue())
#(x.key)
#(x.value)
#end

总之就是 Java 表达式规则

2018-03-26 15:09

jfinal enjoy 对 map 的迭代比 freemarker 方便多了:
#for( x : downloadMap)
#(x.key)
#(x.value)
#end

2018-03-26 14:41

将 PathKit.getRootClassPath(); 改成下面的代码来代替看看对不对:
PathKit.getWebRootPath() + File.separator + "WEB-INF" + File.separator + "classes";

2018-03-26 14:37

@Jason、 部署用的 tomcat 吗? 用这个应该就没事

2018-03-26 14:14

还有一个办法是在 configPlugin 中自己手动调用 start() 方法
public void configPlugin(Plugins me) {
try {
arp.start();
}
catch(...) {
...
}
}

注意相关的 DruidPlugin 也需要这样调用,一般来说,在 DruidPLugin 启动失败后,后而后 arp 就可以放弃启动了

2018-03-26 14:12

configPlugin 仅仅是 me.add(...) 添加而且,具体的初始化操作并不在这里

如果你只是数据源注册的话, 可以继承一下 ActiveRecordPlugin, 覆盖掉父类的 start() 方法,大致如下:
public void start() {
try {
super.start();
} catch(...) {
...
}
}

2018-03-26 14:10

@溪碧旗 先配置好日志,然后有异常会自然输出到控制台

下载首页的 jfinal demo,直接用上里头的 log4j 配置与 jar 包

2018-03-26 14:09

是开发阶段还是部署阶段?

2018-03-26 13:14

很久不用 freemarker,况且没有贴出异常信息,很难判断原因

建议你试一下 jfinal 自带的 enjoy 模板引擎,随意定义 function , 比宏经方便简单多了

要知道 function 函数是所有开发语言都有的一个极其简洁自然的特性

2018-03-26 12:36

@zhuweiliang 建议生产环境用 tomcat,开发环境用 jfinal 整合的 jetty-server

2018-03-26 11:48

java.lang.NoClassDefFoundError 这个异常要具体到是哪一个类没找到定义

很可能是你的 resin 缺少对 jsp 解析的 jar 包

2018-03-25 14:44

jdbcurl 的配置中后面那个参数去掉,异常明说不支持

2018-03-24 16:05

@rirai 何必这么麻烦,一行代码搞定:
renderError(403);