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,这个或许默认获取不到,需要参数

2017-04-09 10:41

创建一个 MyBaseModelGenerator 继承一下 BaseModelGenerator,覆盖掉其中的genSetter 与 genGetter 方法,可以随心所欲扩展想我的属性

2017-04-08 17:14

@坚强的地瓜 什么内容被过滤,完全取决于你的 handler 代码怎么写,让代码符合你的初衷就好

2017-04-08 16:50

这个是不是在 qq 里面讨论过的问题? 我记得当时是建议你添加一个 if 分支,那个方法不可以?

上面的改进是不是就是将 getXXX(int) 改为 getXXX(String) ? 这种搞法不知道在 mysql 中可不可靠?

2017-04-08 16:45

@aa11aa getBean() 是后端的事情,getBean 时候的前台是没法干预的

2017-04-08 16:44

@netwild 虽然解决了,但不知为何会发生这种情况,我们都没有碰到过,知道原因不?

2017-04-08 16:42

对于 order by 的 replace 操作本是 jfinal 对 select count(*) 分页时获取分页时获取总数据条数的一个小优化,因为 select count(*) 的最终结果与 order by 无关

但是用正则去 replace 这个 order by 有时候无法处理那类非常复杂的 order by 子句,例如 order by (select ..) as temp desc,所以 jfinal 3.0 就去掉了这个优化。

去掉以后发现 postgresql 不支持 select count(*) 语句中出现 order by,建议用自定义的扩展方言解决一下, jfinal 3.1 会处理好这里

2017-04-08 16:38

@坚强的地瓜 改进下程序,该过滤的过滤,否则放过