2016-09-23 19:54

贴出具体代码才能明确知道原因,目前的信息量不足以解决问题,尤其是 Template not found 后续是会有具体哪个 template 找不到的,一般根据这个提示就能找到原因

2016-09-23 19:52

检查一下这几个地方的设置:
1:页面有没有设置 < meta http-equiv="content-type" content="text/html; charset=utf-8" >
2:configConstants 中有没有设置成 me.setEncoding("utf-8");
3:需要使用表单域传参,而不是 url 中的问号挂参,因为 url 问号挂参的编码方式与 tomcat、jetty 配置有关
4:数据库的 jdbcUrl 连接中的字符集设置是不是 utf-8。(这项对于本问题无关,但对于其它情况下的乱码有关)

2016-09-22 21:57

没 gif 缩略图仍是动态图方面的经验,建议多试几种第三方的工具:https://www.oschina.net/project/tag/141/imagelib?sort=view&lang=19&os=0

2016-09-22 16:53

这类需要都是可以通过拦截器解决的

2016-09-22 16:53

Controller 中可以创建无参构造方法,但不能调用其 setAttr、setSessionAttr 等方法,因为构造方法被调用时,很多数据没准备好,例如 HttpServletRequest 对象没准备好

构造方法首先会被调用,所以这些对象还没来得及准备

2016-09-22 16:50

首先要调用一次 getFile(...) 系列的方法,然后才是去调用 getPara(...) 系列的方法,在手册中有说明

2016-09-22 15:28

@broccoli0 表关联的用法在 jfinal 手册中有示例说明,建议下载首页的 jfinal 手册看一下

2016-09-22 15:27

@hunter_wei2015 建议先设置一下 arp.setShowSql(true) 将 sql 输出到 eclipse/IDEA 控制台,然后在用 mysql 客户端执行一下这些 sql,看结果是什么

2016-09-22 13:31

@zhaoweijing2003 @似水流言1 多多关注社区动态,文档频道功能已经做好,正在添加内容的阶段,前两章添加完后就正式开放了

2016-09-22 13:04

@本人纯属虚构 https 加上以后最大的顾虑就是访问速度会有所下降

2016-09-22 12:26

jfinal 有很多大型项目已经运行多年,例如 trafree.com ,每天千万级别的请求,去哪儿和淘宝旅行都用的他们的 API,12 台服务器做集群,性能非常好

有一个比较普遍的误解认为 jfinal 只适合做小型项目,其实 jfinal 更加适合做大型项目,只需要引入业务层就好,有这种误解可能是看到 jfinal demo 中没有业务层造成的。

现在炒得比较热的微服务,也即大型项目拆分成小型服务做分布式 + 集群的方式,这个其实在很多年前巨头公司都是这样做的,本质就是老祖宗说的分而治之,jfinal 作为一个 web + orm 框架,可以处于这些微服务之中,无论你多大的项目 jfinal 都可以用

2016-09-22 12:20

性能是 jfinal 极度关注的,对于性能 jfinal 做了太多的努力,随便举几个例子:
1:尽可能少地创建对象
2:尽可能少地执行代码,即尽可能少地调用方法也即尽可能短的调用栈
3:对热点代码重点优化,例如 Invocation 这个类
4:尽可能不使用java反射
5:在不可避免要使用反射时,在系统启动时一次性解决,例如 jfinal 的路由与action的映射关系是在系统启动时通过反射建立的,服务启动完成以后不再需要反射匹配路由的动作
6:极简设计,概念最少化,极薄封装,从架构上保障性能最大化

有用户与 SSH 做过性能测试对比,jfinal 性能是 SSH 的 4.56 倍,这里找到一个压力测试的贴子,可以看一下:https://www.oschina.net/news/90815/jfinal-3-3

2016-09-22 12:04

@本人纯属虚构 防止这个攻击需要使用 https,这个会逐步添加

2016-09-22 11:09

@小飞象 jfinal 2.3 考虑添加 getModels 以及 getBeans 支持一下

2016-09-22 10:59

InsertedRows[n] 这个相当于是 modelName,是在 getModel 或 getBean 时可以指定的一个前缀,这两个方法都支持传入第二个参数,如:getModel(Xxx.class, "yyy"),这里的第二个参数 yyy 就是在表单中的前缀 name="yyy.attName"