2018-02-28 17:07

@twzz 出现这个错误提示,很可能是 web.xml 配置有问题,package 路径、类名要完全正确才可以

2018-02-28 16:40

最后,再建议你直接导入首页的 demo 在本地先跑一跑,这样对你新建项目有经验上的帮助

2018-02-28 16:39

@twzz 直接下载首页的那个 jfinal-demo-for-maven , 然后改改里面的包与配置,然后导入到 IDEA 或者 eclipse 中

当然,自行创建 maven 项目也可以,但直接导入可以避免对 maven 不熟所引发的配置问题

jfinal 开发的项目是符合 Java web 规范的标准项目,所以你以前所积累的创建项目、部分方式完全有效

2018-02-28 16:25

再多点耐心,一定可以

web.xml 中的 configClass 中有包名,注意要改成正确的包名,demo 中的包名是 com.jfinal.demo

2018-02-28 16:07

正如 @杜福忠 所说,将原样输出 #[[ ]]# 的范围扩大,大块包住需要原样输出的内容即可

jfinal 将 # 做成自定义很容易,多个配置就可以,但这个字符是通过精心挑选的最合适的方案,如果选别的字符仍然会出现冲突,所以通过这种方式并不能从根本上解决问题

因此,jfinal enjoy 还提供了 #[[ ]]# 原样输出的功能

2018-02-27 18:24

@fmpoffice 应该主是 druid 配置错误

2018-02-27 18:23

@MrGuo.JK 项目的结构问题可以在首页下载 jfinal demo 以及 jfinal demo for maven

2018-02-27 18:21

@maxwade 可以这样理解,虽然有个约定的隐藏参数
这个约定的参数在 com.jfinal.core.Const.java 中有定义:
String DEFAULT_TOKEN_NAME = "_jfinal_token";

但是,这个 "_jfinal_token" 名是不需要关注的,因为 jfinal 还会帮你生成整个隐藏表单域的内容,如下:
StringBuilder sb = new StringBuilder();
sb.append("<input type='hidden' name='").append(tokenName).append("' id='").append(tokenName).append("' value='").append(tokenId).append("' />");
controller.setAttr("token", sb.toString());

注意看最后一行代码,用户所需要做的,只需要在表单步通过下面的代码输出该 input
隐藏域:
#(token)

上面的 #(token) 用在 form 表单之中,剩下的事情就是: validateToken() 了

2018-02-27 18:13

jfinal 文档是随时都在迭代之中的,在线版本可以保障随时都是最新版本

如果确实有离线版本需求,在 jfinal 俱乐部找我要就可以了

2018-02-27 18:11

@Dreamlu PagerUtils 具体是咋用的? 如何用在 jfinal 中呢? 有时间写个分享哈

2018-02-27 18:07

单步调试一下 MetaBuilder 这个类中的获取主键的相关代码,看一下主键是否可以获取到

2018-02-27 18:06

我自己使用 redis 都是将其用于一个中心化的共享缓存,还没有用过 redis cluster,因此也就没有时间添加这个支持

如果你需要使用这个功能,可以通过继承 RedisPugin,覆盖掉父类里面的 protected 支持 cluster 属性即可支持

或许将 JedisPool 改成 JedisSentinelPool 就差不多搞定了

这里还有一个比较全面的分享:
http://www.jfinal.com/share/69

2018-02-27 17:59

确保 getChildren() 方法已被调用

如果是用的 jfinal 自带的 json 功能,那么不会调用这个 getter 方法,使用 fastjson 实现即可:
me.setJsonFactory(new FastJsonFactory());

2018-02-24 16:03

提供一个简单方案: 利用 jgroup 发广播来实现

集群中当前节点缓存数据有变动时,先删掉当前节点缓存的相关数据,然后使用 jgroup 发广播告诉集群中的其他节点也删除相应的缓存

发广播时发个 cacheName 与 cacheKey 组合的字符串即可,收到广播的节点解析出 cacheName 与 cacheKey 删除缓存即可

此外,也可以利用 ehcache 自己的方案实现同步,查看下他得文档