2017-08-22 11:42

通过继承 MetaBuilder 扩展一下即可,大致如下:
public void MyMetaBuilder extends MetaBuilder {
private Set myTables = new HashSet();
public void addTable(String table) {
myTables.add(table);
}

public boolean isSkip(String table) {
if (myTables.contains(table)) {
return false;
} else {
return true;
}
}

用的时候这样:
MyMetaBuilder mmb = new MyMetaBuilder();
mmb.addTable(要处理的 table);
mmb.setDialect(new MySqlDialect());

Generator gen = new Generator(...);
gen.setMetaBuilder(mmb);
gen.generate();

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)