2017-08-22 16:07

如果 mybatis 是这类 left jon 的 sql 返回值封装好了 List blog 的话,那也是在结果返回以后做的

在 jfinal 之中可以稍微写点代码对于返回结果再重组一下就可以了。而 jfinal 手册的 5.9 的例子确实是发起了两次 sql 请求,但那个 sql 与你在贴子中的 sql 是不同的,你在贴子中的 sql 在 jfinal 中也只执行一次 sql

2017-08-22 15:46

eclipse 下不存在这个问题, IDEA 下可以将 model 抽取成一个独立的module , 独立去运行这个 generator,或者可以在命令行用 java 命令直接运行起来

2017-08-22 15:44

建议用 maven 来管理,完全不需要关心 jar 包的问题

如果不用 maven 来管理,就要仔细小心去研究 spring mvc 本身的相关依赖

最后,对于 spring 的依赖只要看一下 pom.xml 中有关 spring 那项即可,里面写好了版本号

如果用 maven 管理,导入到项目中,直接 mvn install 或者 mvn compile 就完事了,省好多时间

2017-08-22 15:41

这个愿忘是挺好的,就是担心可能有副作用,例如,先存入一个 Integer 型,然后取出来的时候是不是要对这个 Integer 进行反序列化

由于存的时候没有序列化,所以取出来的时候就不能反序列化,但此时怎么知道这个值是不是要反序列化?

感谢你分享

2017-08-22 15:38

@Arjen-Ribery 不细心而已,不可能出现丢失的问题

2017-08-22 14:16

jfinal 开发的项目是标准的 java web 项目,以前所有相关知识直接用上即可

这里再额外提供 tomcat 下的部署建议方式:https://my.oschina.net/jfinal/blog/353062

2017-08-22 12:00

@Angel、心脏 你的验证不是要显示在浏览器的页面中吗? 用一个 img 标签让其 src 指向你的验证码图片生成的 action 即可,看一下本站的登录验证码图片的 src 立即明白:http://www.jfinal.com/login

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