2017-08-22 11:38

@jfinal风格 解决办法已经告诉你了,没有再回答的空间了,因为我一直就是这么用的,没有发现任何问题

2017-08-22 11:37

@Angel、心脏 在你的 MyValidator 中的 validate 方法中添加一行代码即可:
this.setDatePattern("yyyy-MM-dd HH:mm");

极其简单,便捷

2017-08-22 11:28

null 是 json 规范的一个合法的并且确定需要的值,不能随便动这个值,注意看这里的规范:http://json.org/

如果一定要改变这个行为,需要自己定制 json 转换器,参考一下 jfinal 中的 FastJson 中的代码,写一个 MyFastJson,将之改造为将 null 转成空字符串

具体到如何转换,可以参考一下 fastjson 的官方文档,或许它本身就有 api 支持

最后,做好以后,通过 me.setJsonFactory(new MyJsonFactory()) 让你自己的 MyFastJson 生效即可

2017-08-22 11:25

@Angel、心脏 renderCaptcha() 即可,一行代码的事

2017-08-22 10:54

只要是 setAttr("page", ....) 传入的不是一个 null 对象,在页面就一定可以获取到,99.9% 的可能性是页面访问 page 对象的姿势不对,例如 jfinal template engine 这样访问:
#for (x : page.getList())
#(x.title)
#end

2017-08-22 10:47

jfinal 3.2 没有 catch action 中的异常,很可能是你自己的代码在后续的 action 或者拦截器中 catch 了异常,但却没有继续抛出,这里就自然感知不到

2017-08-22 10:37

@arboret 对于这种数据,不要总想着用 Validator 去验证,Validator 也仅仅是一个拦截器而已,你可以写个简单拦截器,然后验证得以的 json 数据,一点也不耽误

你必须在传 jsonString 与表单提交之间做出一个选择,选前者就无法用 getPara

2017-08-22 10:35

@arboret 不是没有了,而是这样读的数据,你本身就无法通过 getPara 来获取,无论前面你有没有用这种方法读取过, validator 中始终就是样,getPara 还是无法工作

简单一句话: 这种传递数据的方式并非“表单提交”

2017-08-22 10:22

@arboret 这个是 java web 规范 servlet 中的 HttpServletRequest 的行为,jfinal 并未干预过,仅仅只是从中读取数据而已

2017-08-22 10:20

扩展十分简洁,用起来也非常省事、实用,感谢你的分享

2017-08-21 23:32

order by 语句无法被 MySqlDialect 移除,用一下 paginateByFullSql 就好,看一下手册中有关这个方法的使用

大部分情况用 paginate 就可以

2017-08-21 19:39

jfinal 定位于 web mvc + orm 框架,未集成 activity,可以去 oschina.net 搜索一下相关的资源

2017-08-21 18:44

@盼盼 如果你用的是 jfinal 的魔板引擎,就是 #(webctx)

2017-08-21 18:07

@盼盼 前面手误,应该是 ContextPathHandler,是 jfinal 官方提供的:
com.jfinal.ext.handler.ContextPathHandler

2017-08-21 17:43

@arboret 这种情况确实就没办法用 Validator了,可以仿照 Validator 自己写一个 JsonValidator 出来,对请求过来的 json 数据,先用下面的代码转成对象:
1:String json = HttpKit.readData(controller.getRquest());
2:Kv para = FastJson.getJson().parse(json, Kv.class);
3:对 para 对象中的数据进行验证,然后仿照 Validator 中的验证方法返回数据