2017-04-10 13:47
显然我是在说需要如下的信息量,才有可能存在回答的空间:
1:abstract class BaseValidator 不是引发错误的原因,而是你的具体的某个 Validator 直接引发,但你没贴出这部分代码
2:具体的那个 Validator 怎么用的,里面的代码是什么,无从得知
3:异常信中的信息与 Validator, 甚至与你的 BaseValidator 完全无关,你可以搜索一下这个异常信息,完全不存在 Validator 字样,甚至存在的 jfinal 字样也只有与 aop 相关的两个类
4:异常信中完全没有 cause 信息
提出问题,要换位思考,站在回答者的角度去思考到底提供什么信息量才让对方能理解在问什么,如何回答
因此,本贴中的问题完全没有可回答的空间
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:42
@eskylele jfinal 手册有详细说明,在首页下载一份
2017-04-09 10:42
@netwild 搞了半天你是希望得到 "表名" 的 remark,这个或许默认获取不到,需要参数
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 会处理好这里