2017-03-05 15:38

@爱小乖 感谢支持

2017-03-05 12:18

forwardAction 是后端转发,所以当前 action 与 被跳去的 action 仍处于同一次请求之中,request 对象中的一切都原封不动的在那里

2017-03-05 12:17

handleError 被调用,意味着本次请求的验证逻辑已经失败,通常是直接 render 到某个页面,或者 renderJson 返回数据,在 handleError 中使用 forwardAction 的玩法从来没有见到过

forwardAction 是后端的转发,所以 request 中的参数天然就是在那的,所以“请问怎样才能跳转到另一个action还保留参数啊?”这个问题自身就是不存在的

2017-03-05 01:07

@wang sharedMethod 扩展以后的用法是在表达式之中直接调用方法,例如:
#if(isBlank("abc"))...
其中的 isBlank 来自于 StringKit

除了要注意用法以后,要特别注意方法的参数个数与参数类型是否匹配,如果不匹配则会报出:Shared method not found 这个异常,这个异常确实报得不太友好,jfinal 3.1 已经改进了这里,会明确告知除了方法名可能错以外,方法的参数匹配不上也会报出来

2017-03-04 16:59

@fengting jfinal 手册第一章介绍了如何升级,其中谈到了这点,搞定了没?

2017-03-04 16:48

如果是用的 IDEA,并且是用的 jfinal 集成的 jetty 启动项目,使用如下代码:
JFinal.start("WebRoot", 80, "/");

而不要使用如下代码:
JFinal.start("WebRoot", 80, "/", 5);

也就是说,IDEA 下的启动少了最后一个 int 型参数,这是由于 IDEA 启动时无法切换成 jfinal 自定义的 classloader 引发的,下载首页的 jfinal demo,看一下 DemoConfig.main() 方法中的说明文字

记得搞定后再回复一下该贴

2017-03-04 11:43

配置一下 ActiveRecordPlugin,代码如下:
arp.setContainerFactory(new OrderedFieldContainerFactory());

2017-03-04 11:33

@坚强的地瓜 这篇贴子就是在 jfinal 3.0 还没发布时发的,所以是一定可以用的,再多试试

2017-03-03 23:21

@nelsonnick Db.paginate 其中的参数仍然是 sql,所以也可以用 template engine,但并没有提供针对性的支持,下一版本 jfinal 3.1 会提供针对性的支持

2017-03-03 20:22

@程序小小白 这种用法非常之普遍,一定是可以的,具体报什么错误要贴出来,根据异常信息去解决问题

此外,一般是将参数额外传进去:
Db.update("delete from user where power=?", power);
不要将参数拼接在 sql 字符串之中

2017-03-03 18:19

存放在 session 中的值如果希望在页面使用,添加一个全局拦截器:
me.add(new SessionInViewInterceptor())

然后就可以在页面通过 #(session.object.value) 这种形式进行访问了,建议先看一下 jfinal 手册中的基本用法

2017-03-03 16:44

这里的 me 对象是 static 的,只会被创建一次,对 me 方法的调用是线程安全的,所以是完全并行的,没有锁的存在

2017-03-03 15:44

第一个问题,就是指改成与数据库字段一样

第二个问题,仍然可以使用 getModel(Student.class, true) 来获取,只不过在最后面添加一个 true 参数

addExcludeTable 可以处理 view,你可以使用正则表达式,或者通过配置文件的方式去除掉不要的 view,你也可以直接覆盖掉 getTablesResultSet() 方法,将:
new String[]{"TABLE", "VIEW"}
改成:
new String[]{"TABLE"}

总之 Genereator 中的所有方法都是面象扩展的,希望大家能举一反三的去扩展

2017-03-03 15:40

@caoxusheng @要输就输给追求 没错,就是 Db.update(sql, .... )