2017-04-26 11:39

缺包而已,如果是 maven 用户添加一下相关依赖:
groupId:org.eclipse.jetty
artifactId:jetty-jsp
version:8.1.8.v20121106

将上面三个配置转换成 maven pom.xml 中的 dependency 格式,如果不是 maven 项目,在 jfinal 官网首页下载 jfinal-3.0-all.zip ,里面有一个 lib 目录,下面有个 jstl 目录,将里面的 jar 用上

2017-04-26 11:36

@wendell620 理论上是可以的,通常将 jfinal 用于 android、ios 服务端的多

2017-04-26 09:57

如下代码即可打完收枪
String jsonString = HttpKit.readData(getRequest());
User user = FastJson.getJson().parse(jsonString, User.class);

2017-04-26 09:43

如果觉得 jfinal 好用,多多介绍给有需要的朋友们试用 ^_^

2017-04-26 08:49

使用 #(for.index) 即可极速打完收枪,通常序号从 1 开始比较好,所以还可以使用:
#(for.count)

这些在 jfinal 手册中都有说明。此外你的截图 html 中有黄色波浪线影响美观,这个在 jfinal 手册也有说明如何解决

2017-04-25 20:11

@vae 可以的,只要你 render 的时候以 "/" 打头就可以了,例如: render("/xyz/ab.html");

2017-04-25 15:56

让地址栏中的 url 与 controller 和方法名不相同就好

2017-04-25 11:31

一是注意字符集的问题,二是查询的时候不要将参数拼接在 sql 中,这样用就好:
find("select * from bo_vod_net_video where title = ? ", title);

2017-04-25 10:42

@why jfinal 只提供最简单最直白的解决方案,具体到应用中大家如何组合搭配,就看大家的喜好,以及应用场景了, just do it

2017-04-25 10:40

建议看一下 jfinal 3.0 手册,里面针对升级到 3.0 有专门的一章

2017-04-25 10:40

补充一下, jfinal 3.0 默认使用的是 jfinal template engine,所以如果你需要在 jf 3.0 中使用 freemarker , 需要配置一下:
me.setViewType(ViewType.FREE_MARKER);

2017-04-25 10:39

freemarker 的路径不建议这么配置,直接在 configRoute(Routes me) 中对 Routes 进行配置就可以了:
me.setBaseViewPath("/WEB-INF/template")

你上面的代码应该也是可以的,但不如我建议的办法好

2017-04-25 10:36

@whoismy8023 追求极简的设计,一开始会有觉得少了点的感觉,但少即是多,灵活去组合各种核心功能就能实现非常灵活自由的功能

2017-04-25 00:05

@whoismy8023 hibernate 的 HQL 就是在 HQL 中使用实体属性,而非使用的字段名,付出的代价是极大的,例如需要发明 HQL,不仅徒增学习成本,而且带来了非常大的麻烦

增删改查,通常增删改是不需要写数据表字段的,你试一下 model.save(),model.update()、model.delete() 就知道这三个方法完全不需要知道字段名

只有查询才与表字段有关,hibernate 的坑在此就不在赘述了。你感觉缺少了数据库字段和实体对象属性的对应关系,这个关系并不缺少, jfinal 通过反射数据库表在系统启动时就自动建立了,如果你是希望用注解或者 XML 去配置这种对应关系,那就严重违备了 jfinal 的极简设计风格

hibernate 时代就是利用 xml 或 annotation 建立了实体属性与表字段的关系,其缺点在此就不在赘述了

2017-04-24 21:50

这个 batchUpdate 方法为了达到最高性能,所以整个方法中只使用一条 sql ,并将其 preparedStatement(sql)

如果为 list 中的每个元素都生成一条 sql 就只能 createStatement(),然后不断 addBatch(sql) 各种不同的 sql

以上是两种不同的工作模式,前者在注释中已经说明,sql 会根据 list 中的第一个元素去生成,如果 list 中的元素各不相同,建议使用 batch(List sql ...) 这类方法