2016-11-02 11:29

@万龙 为啥跳出了? 要确保代码可以进入这个 if 内部才可以注入 id 值。 此外,你是否设置了 postgresql 的方言: arp.setDialect(new PostgreSqlDialect())

2016-11-02 11:00

@万龙 按照上面所说的,单步调试一下 getGeneratedKey 这个方法

2016-11-02 10:59

@tonghu008 这样是不可以的。想象一下,一共有两个数据源,在最后提交时,第一个提交成功,第二个失败被回滚,这里你想再回滚第一个时已然不可能,第一个已经被正确 commit 了

所以,为什么说这是一个分布式事务问题范畴,就是因为需要将多个数据源事务以某种方式给弄成一整个事务,涉及类似于分段提交,提交日志等事情,通过传统的实现方案是可以搞定的,但 jfinal 只接受简洁的方案,目前还没时间去弄

2016-11-02 10:54

jfinal 社区有很多的 ajax 表单提交都是用的 jquery form,极度方便,相当于是使用普通方式实现 ajax 请求,省去了很多处理 ajax 的心思

2016-11-02 10:52

分两步走,极度容易:
1:按照原先 form 表单的方式把文件上传的组件安排好,包括from表单的 enctype 也要设置好,包括提交按钮也安排好,要有这样的一个button: input type="submit"

2:使用 jquery form的这样一个 jquery 插件,几行代码代码搞定:
$(document).ready(function() {
$("#myForm").ajaxForm({
dataType: "json",
success: function(ret) {}
});
});
注意 $("#myForm") 这个 jquery 代码要能找到你的 form 表单

3:此法本质是就在一个普通表提交的基础之上,让这个叫 jquery form 的插件在提交的时候接管请求,并自动化将请求转化为 ajax 请求

4:jquery form 在本站有下载:http://www.jfinal.com/assets/jquery_form/jquery.form.min.js

2016-11-01 22:34

@小木学堂 互相学习,共同发展,共建 jfinal 生态圈

2016-11-01 22:31

我靠,刚看到,小木学堂又有大动作出来了 ^_^

2016-11-01 21:28

建议在 Model.save() 方法中的 getGeneratedKey(pst, table, config); 这行代码处设置一个断点,单步调试进去,看 id 值是否获取到了

2016-11-01 21:27

id 值生成的策略是什么? 数据表是否设置了自增

此外,jfinal 会将设置了自增的主键值在 save() 被调用后立即写入调用 save() 方法的 model中,例如 xxxModel.save() 那么就写回 xxxModel 这个对象中,所以要注意一下所观测的 model 是否为调用 save() 的原始 model

2016-11-01 16:10

打算开源不?

2016-11-01 11:53

@jfinal-jfinal 用 "-" 分隔即可,这样用:/people/{path1}-{path2}-{path3} , "/" 斜杠对于 SEO 没有好处

2016-11-01 11:00

@jfinal-jfinal action 约定为在 Controller 中定义的 public 无参方法

放上 request、response 这些对象在 jfinal 中没有任何意义,而且还徒增了代码量,因为你可以通过 getRequest() 与 getResponse() 很轻松地在 controller 中获取到这两个对象

2016-11-01 10:43

@yinguizhi 看一下 jfinal 源代码, getPara() 中仅仅是转调了 HttpServletRequest 对象的 getParameter() 方法,没有其他任何操作

2016-11-01 10:23

me.setBaseUploadPath("/shangchuan"); 这个配置,在文档里面说明了,以 "/" 打头或者以 "d:/" 这样的盘符打头,都是绝对路径,尤其是 "/" 头打,直接就跑到当前磁 盘的根上去了

所以,只需要去掉 "/" 这个字符就可以让配置是以项目根路径为基础 ,改成这样: me.setBaseUploadPath("shangchuan");

2016-11-01 10:22

刚刚看了一下文档,确实是有这句:”当该路径参数设置为相对路径时,则是以项目根为基础的相对路径“,注意这句话的上下文,这句是指 baseUploadPath 的设置,不是指 getFile(...) 时临时传入的路径