2017-05-15 11:39

第一个问题,没有秒懂,希望能在这个贴子上修改补充

第二个问题,在 batch 调用之前用 Db.tx 或者 Tx 拦截器开启事务就可以在出错时回滚,但要注意将 batchSize 设置在合理的范围之内,因为数据库会默认在批量操作时到达一定数据自动提交,这个 jfinal 无法控制

第三个问题,也没秒懂

2017-05-13 15:19

@chenmopinglou 没有集成这个功能

2017-05-12 18:15

@欲风217 注意看手册中有关逻辑表达式的规则,在总体上保留 java 规则的前提下,进行了有利于用户体验的改进

2017-05-12 18:14

@欲风217 #if(x.value != null && x.value != "") 可以做如下改进:
#if(x.value && x.value != "")

jfinal 对于逻辑运算进行了简化, if( value != null) 等价于 if ( value ),因为 if (null) 为 false

2017-05-12 18:07

@nian_yiluo 我做东西一大特点就是简洁,当然 UI 方面除了简洁还需要美观,美观方面就需要专业人才去弄了

2017-05-12 16:12

通过这点信息量确实不好猜,看看是不是掉到 tomcat 的坑里了:https://my.oschina.net/jfinal/blog/353062

2017-05-12 16:09

在浏览器里面点击右键,然看查看最终的 html 代码就能知道了,尤其是对比一下这两者产生的 html 有何不同

2017-05-12 13:50

手册有例子专门讲独立启动 arp

2017-05-12 12:27

ApiInterceptor 是专门针对控制层设计的,如果你要用于 WeixiinMsgUtil,需要先了解 ApiInterceptor 的工作机制

作用于控制层,可以覆盖到你的 WeixinMsgUtil,所以是没有必要再 enhance 的

2017-05-11 22:01

补充一下:如非必要不要使用 ?? 运算符,否则就是代码冗余,当一个变量为null 时通常也没有必要使用 ??,只有下面两种情况需要使用:
1:需要为 null 值提供一个默认值,例如下面的表达式:
abc ?? def
当 abc 为 null 时,整个表达式的值为 def

2:当 field 取值表达式或者方法调用表达式的被操作对名为 null 时,例如下面的表达式:
obj.method()
当 obj 可能为 null 时,才需要使用: obj.method()?? , 如果确定 obj 不可能为 null就不需要

user.nickName
当 user 可能为 null 时,才需要使用:user.nickName ?? , 如果 user 不可能为 null,即便是 nickName 为 null 也不需要使用 ??

综上, ?? 表达式不要过度使用,只有要必要的时候才使用,否则到处是 ?? ,影响美观,而且代码冗余

2017-05-11 21:57

类似于下面的用法:
#if (cond)
#break
#end

#break #continue 的用法与在 java 中的行为一样

2017-05-11 16:57

感谢你的分享,对于 IDEA 新手很有用

2017-05-11 16:56

简化使用,减少代码冗余的封装都是可以的, just do it

2017-05-11 16:52

"ID NOT IN ? " 这个是无法针对多个值工作的,一个值就得配备一个问号“?”,所以你需要将 sql 拼接成有多少参数就需要多少问号的形式

建议用 sql 管理功能来过生成这个 sql,简洁且清晰

2017-05-11 16:47

@sdfsf 当然可以,这里刚才有个分享是介绍在老版本 jfinal 2.2 中如何使用模板引擎的:https://my.oschina.net/u/2248923/blog/897189

你如果是在 spring 中使用,大致方法一样,不同点在于,只你只需要使用完整的 jfinal-3.1.jar 就可以了

在任意环境下使用 jfinal template engine 的方法在 jfinal 手册中有一个章节有过介绍