2017-04-10 15:52

这里还有一些资源:
http://blog.csdn.net/imxiangzi/article/details/47123849

2017-04-10 15:50

@北流家园网 jfinal 默认提供的指令很少,但是可以无限扩展,扩展方法极其简单

2017-04-10 15:48

redis 插件需要引入很多的 jar 包,在首页下载 jfinal 3.0 all 这个 zip 文件,里面有相关 jar 包可用

解决 class not found 异常是最最基本功,建议打好基础

2017-04-10 15:46

多数是由自己的程序中出现内存泄漏造成的,少数情况是第三方依赖有内存泄漏,在线上使用 jmap 与 jstack 这些命令去定位一下内存占用的异常情况,再修改那些内存泄漏的地方

除了内存泄漏以外,还有一种情况是内存回收的速度跟不上内存被吃掉的速度,例如:在有一定访问量的情况下,某个地方在不停的创建对象,好比 Db.find("select * from bigTable") 这种 select * 并且不带 where 条件的查询会生成很多对象

还有更专业的工具在 eclipse 中就可以查看,例如 jprofile 之类的

一般不需要复杂工具,用用 jmap 与 jstack 就好,参考这里:http://hillside.iteye.com/blog/706129

2017-04-10 15:24

HttpKit 只是为了极简去实现最常用的功能,如果将功能实现得很完善,代码量以及所花费的时间投入无法承受,因为 jfinal 定位是 mvc + orm,而 http 类型的框架要做得很完善,非一日之功

如果需要更多的 http 功能,建议用一下 http client 这样专门支持 http 功能的第三方

2017-04-10 15:20

jfinal 是后端框架,前端的效果需要使用 javascript 方面的资源去实现,例如 jquery 之类的

2017-04-10 15:19

根据异常定位到 InterceptorManager.java 文件的第 83 行代码如下:
method.getAnnotation(Before.class)

很显然这行代码是一个极其正确的代码,问题必然是出现在代码之外的地方,从下面几个方法去尝试解决:
1:确定 jdk 的版本,以及是否是 oracle 的 jdk,而非 openjdk
2:如果使用 JFinal.start(...) 启动,确定启动参数在 IDEA 开发环境之下,是否去掉了最后一个参数,也即最后一个 int 参数在 IDEA 之下一定要去掉
3:尝试将 @Before({LoginValidator.class}) 改为 @Before(LoginValidator.class)

无论如何,这个问题必然与 jfinal 无关,因为 method.getAnnotation(Before.class) 这行代码已经使用了五年以上了,从未出过问题

2017-04-10 13:47

显然我是在说需要如下的信息量,才有可能存在回答的空间:
1:abstract class BaseValidator 不是引发错误的原因,而是你的具体的某个 Validator 直接引发,但你没贴出这部分代码
2:具体的那个 Validator 怎么用的,里面的代码是什么,无从得知
3:异常信中的信息与 Validator, 甚至与你的 BaseValidator 完全无关,你可以搜索一下这个异常信息,完全不存在 Validator 字样,甚至存在的 jfinal 字样也只有与 aop 相关的两个类
4:异常信中完全没有 cause 信息

提出问题,要换位思考,站在回答者的角度去思考到底提供什么信息量才让对方能理解在问什么,如何回答

因此,本贴中的问题完全没有可回答的空间

2017-04-10 13:41

通过 activeRecordPlugin.setBaseSqlTemplatePath(...) 设置一个项目之外的 sql 基础路径,然后所有项目全部都可以指向该目录了,该目录本身通过配置文件进行配置,这样可以将来切换路径时,统一搞定

目前不支持从 jar 包中读取 sql 文件,jfinal 3.1 会考虑添加一个 addSqlTemplate(IStringSource) 方法支持扩展支持任意方式读取 sql 模板

2017-04-09 20:58

仅给出一个类定义,无法判断原因

2017-04-09 16:15

@EATI001 前端有 nginx 的话,麻烦会更多,nginx 会接管静态请求,请求根本到不了 tomcat、jetty,如果将 nginx 的 root 配置指向 WEB-INF,那么其下的 jar 包与配置文件也暴露了,还需要额外配置对这些文件的禁用

jfinal 目前只专注处理动态请求,静态资源尽可能不去处理,生产环境下 nginx 接管静态资源已然成了标配

2017-04-09 15:46

css js png jpg 这类资源文件,由浏览器发起请求,由 tomcat、jetty、nginx 这类进程直接接管,类似于 jfinal、Struts、spring mvc 框架都不会去干预

而 WEB-INF 目录下面由于有 jar 包、配置文件等需要被保护的文件,所以 tomcat、jetty 这类 java web 容器天然禁止对 WEB-INF 之下一切资源的访问

因此, css、js 这类文件生来就不应该被放在 WEB-INF 之下,这个是由很久以前的 java web 规范决定的

如果一定要放在 WEB-INF 之下,需要添加 Filter 接管这类资源的请求,然后象 tomcat、jetty 一样将这类资源的内容自行加载并响应给客户端,相当于是自找麻烦

2017-04-09 10:46

假定用户希望 set 进属性然后进行 update() 更新数据库,如果他的属性名写错了,但 jfinal 并没有提示,那么就留下了安全隐患

因此,jfinal 会对 set 方法进行属性验证,就好比你在使用常规的 java bean 时,调用错误的 setXxx(...) 方法后编译器会给你一个错误提示是一样的道理

如果希望放入不是属性的数据,用一下 put(key, value) 方法即可

2017-04-09 10:42

@netwild 搞了半天你是希望得到 "表名" 的 remark,这个或许默认获取不到,需要参数