2017-11-28 10:45

不是maven ,只要删掉 jetty-server-8.1.8.jar 包就可以了。 但是你如果自己添加过有关 jsp、jstl 相关 jar 包,也要删掉,原因与前面谈的本质上一样

在 jfinal 的角度,非 maven 项目,只提供过 jetty-server-8.1.8.jar 这个 jar 包,但仍然无法阻止你自己额外添加 jsp、jstl 相关的 jar 包,这点就是在删了 jetty-server jar 包以后,解决问题的关键

2017-11-28 10:40

NullPointerException 并没有什么高招,单步调试,找到那个为 null 的对象,解决之

2017-11-28 10:40

改造一下 FackStaticHandler,在里面添加 对于前台后台的判断,分别做处理,大致这样:
if (target.startsWith("/admin")) {
// 后台直接跳过,不做伪静态
next.handle(...);
} else {
// 前台做伪静态
伪静态代码写在这里
}

2017-11-27 18:35

@嗷嗷嗷 多个 servlet 版本的 jar 包冲突了,如果你是 maven 项目打包出来的,那很可能是 jetty 的关联 jar 包没删干净

打包之前将对 jetty server 的依赖的 scope 改 provided 解决

也就是说maven 项目下, jetty-server 这个依赖会传递依赖很多其它的 jar 包,打 war 包时会全打进去

2017-11-27 18:33

sql 有错误, order by 要放在最后面。

可以通过 activeRecordPlugin.setShowSql(true) 将 sql 输出到控制台,观察 sql 到底是什么样,将 sql 改对了就可以了

2017-11-27 18:30

@bujj 使用的是上次的 class 文件而已,这个一点也不罕见,将 class clear 掉,重新编译即可

2017-11-27 18:29

如果你是用的 redirect,添加一个 true 参数即可:
redirect(url, true)

2017-11-27 18:28

控制层的拦截器是自动触发的,业务层的拦截器必须要进行 enhance 才可以触发

你碰到的业务层拦截器被触发了,必定是当前业务对象被 enhance 了,只是不太容易被察觉而已,单步调试找到原因即可

2017-11-27 18:26

这个是分布式与集群的范畴了,这个问题无法三言两语说清楚。 如果是共享的一个数据库,做好事务是最基本的,内存中不要放临时数据,使用数据库中集中的数据

2017-11-27 18:23

@Jeese 建议一个最简单的办法:
1:在首页右侧下载 jfinal-3.2-demo-for-maven.zip 这个项目
2:解压以后,导入 IDEA,IDEA 会自动生成所有配置
3:根据 JFinalDemoConfig 中 main 方法中的注释说明直接启动项目

利用上述方法创建好项目,可以推导出来:只要将项目事先建成 maven 结构的,直接导入 IDEA 中就建好了项目,可以代替其它创建项目的方式

这个在当前 git 普及的情况下是极其有用的,因为 git 上的项目通常是 maven 结构给到你

2017-11-27 18:21

这个好多人需要,点赞、收藏

2017-11-27 18:16

除了 inv.getActionKey() 还有如下实用的方法可以使用:
inv.getMethodName()
inv.getControllerKey()

甚至可以获取controller 中的 Method 以及上面的注解:
inv.getMethod()
inv.getMethod().getAnnotation()

还可以获取 controller 类上的注解:
inv.getController().getClass().getAnnotation()

获取到了上述的注解,尽情发挥想象力

2017-11-27 18:14

如果你确实没有用到 parse 方法,就没有必要使用 MixedJsonFactory了,直接用 jfinal 默认的 json 转换实现就可以了

2017-11-27 18:14

jfinal 3.3 之前的版本,如果使用了 MixedJsonFactory 也会对 fastjson 有依赖,只不过你的程序一直没有调用过 parse(...) 方法,所以没有表现出来

而 jfinal 3.3 对 fastjson 添加了 Record 序列化支持,所以尽早表示出来了而已,这个问题在不同的 jfinal 版本中本质是一样的,只是表现不表现的问题

2017-11-27 18:12

@libofei 写在程序里,先确保你的项目设置为了 utf8, java 文件本身也是有字符集的