2017-03-07 16:08

确实是有少数图片不支持,解决办法是将图片令存为 png 一下就好,或者换一张图片,目前仍然不知道这个异常的原因

2017-03-07 15:36

@fengting jfinal 3.0 手册第一章啊,首页右侧有下载的啊

2017-03-07 15:29

@fengting jfinal 手册中,只要是红色字体部分,就非常重要,否则容易出问题,一旦知道了,后面就没阻力了,都是些简单规则

2017-03-07 14:29

你的代码没有业务层,这是极大的错误,添加上业务层,让业务层处理业务,并返回合理的返回值

俱乐部专享福利项目 jfinal-club 是这样做的:
1:建立业务层
2:让业务层返回一个 Ret 对象,用于承载业务处理的一切结果
3:控制层理论上仅需一行代码: renderJson(service.justDoit(getPara(...), ...));

业务层大致这样:
public Ret login(String userName, String password) {
....
if (...) {
return Ret.fail("msg", "用户名或密码错误");
} else {
return Ret.ok("loginUser", user);
}
}

控制层大致这样:
Ret ret = loginService.login(getPara("userName"), getPara("password"));
renderJson(ret);

考虑一下加入俱乐部,有大量这类代码,直接可用:http://jfinal.com/club

2017-03-07 12:05

@Ferrari8899 开发的时候,多多使用单步调试,调试的时候,可以观察变量窗口中的变量类型与变量值,极大提升开发效率:程序是调试出来的,不是写出来的

2017-03-07 11:28

js 貌似有精度问题,考虑将之转成 string 就没问题了

2017-03-07 11:27

分两部走:
1:添加全局拦截器:me.add(new SessionInViewInterceptor())
2:在模板中使用前缀访问:#(session.key)

2017-03-07 10:57

在最外层再套一个 select * 就好,大致这样:
paginate(1, 10, "select *", "from ( 原 sql ) as temp", ...)

2017-03-06 23:31

控制台输出的 jfinal action report 中的 parameter 这部分是什么? 先看一下参数的格式再决定如何走下一步

2017-03-06 22:45

还没顾上,一定会添加该功能的

2017-03-06 21:59

@出关客 其实你也可以在自定义指令中不必关心 setExprList 这个方法,而只关注 exec 这个方法,在这个方法中直接使用父类中的
protected ExprList exprList 这个属性值就可以访问到了,注意看一下 jfinal 官方扩展的几个指令是如何直接在 exec 方法中使用 exprList 这个对象的

多说一句,还有另一个父类的 protected Stat stat 对象,直接调用其 exec 方法就相当于访问到了具有 #end 结尾符指令的 body 部分

2017-03-06 21:36

@出关客 具体可参考一下 #date 这个扩展而来的指令,重点看一下里面的 setExprList 方法

2017-03-06 21:35

@出关客 如果是 map 以参数形式传的,那么在这个自定义指令中创建一个 setExprList(ExprList exprList) 方法,通过 exprList 这个参数就可以获取到这个 map

2017-03-06 19:34

@板砖哥 jfinal 3.1 才可以让 p 指令这样来用: #p(cond.key),目前你先用一个 #set 指令过渡一下,这样用:
#set(key = cond.key, value = cond.value)
#p(key) #p(value)