2016-10-10 21:59

@nbjgl jfinal 尽量做一些通用的功能,你感觉做的那些重复的事情,其实可以自己扩展一下,很容易,只要两步就好:
1:做一个 MyModel 继承 Model,在这个 MyModel 中实现自己需要的扩展功能
2:做一个 MyBaseModel 继承 BaseModelGenerator,覆盖掉父类中的 genClassDefine() 这个方法,将原来生成器生成的的 extends Model 改为 extends MyModel 即可让你所有的最终 model 拥有这些扩展的功能

2016-10-10 21:56

是最好的 jfinal 极速开发者社区这是肯定的,力争成为更加好的技术型社区,感谢你的支持,jfinal 将会有极其好用的功能要上,多多关注社区

2016-10-10 21:54

其实吧,这个 2066 是手动改的,因为现在左侧文章列表的排序是按时间倒序排的,懒得做置顶功能,所以改下这个时间就可以让官方的两篇文章置顶了

右侧的热门列表是根据最近点击量排序的

2016-10-10 21:01

@nbjgl jfinal 是极简设计,所以有一定的取舍

2016-10-10 15:32

将 Controller 的路由改一下,不要与被前面那个 Handler 所阻止,或者在 Handler 中对个别模式的 url 进行判断,放行一部分,要根据需求灵活运用

2016-10-10 15:31

对于常用的数据库操作功能所使用的 sql 都有封装,例如 model.save()、model.update() 、model.delete()、model.findById(idValue) 等等

由于查询可能是千变万化、个性化的,所以为用户留下了传入 sql 的接口,例如这种 sql,jfinal 就完全不知道你会这么用,也不可能替你封装: find("select a.x, a.y, b.z, c.* from ta as a inner join tb as b on a.id=b.aid right join tc as c on b.cid = c.id where a.x =? and b.z =?", ...)

2016-10-10 15:26

从代码外观上看,是在使用业务层 AOP,所以需要使用 Enhancer.enhance(...) 或者 Duang.duang(...) 先将业务层增强,然后拦截器才会被触发,建议再仔细看一下 jfinal 手册,专门讲了这个问题,控制层的拦截器是自动触发的,与业务层不同

2016-10-10 15:24

这里有个相同的问答,http://www.jfinal.com/feedback/376
可以直接改一下 sql 语句,避免针对于 user 表使用 select *

2016-10-10 11:48

仿照 com.jfinal.ext.handler.UrlSkipHandler 过滤掉不希望被访问到的路径,核心代码如下:
void handle(target, req, res, isHandled) {
if (target.startsWith("/upload") {
HandlerKit.renderError404(req, res, isHandled);
} else {
next.handle(target, request, response, isHandled);
}

2016-10-10 09:45

@无为 拦截器当前拦截的就是某个 action,这就是一种极其明确的对应关系,不需要再使用 actionKey 去获取 Action

当然,如果一定要获取,可以这样:JFinal.me().getAction(url, urlPara);

2016-10-09 20:23

@kopj java 是后端,页面的事情是 html + css + js 做的,当然,你用 java 在后端直接生成 html 或者 json 数据这是另外一个概念

2016-10-09 20:00

用 javascript 拿到 json 后,动态改变页面的值即可

2016-10-09 19:58

通过 inv.getActionKey() 或者 inv.getControllerKey() 获取到的数据应该可以满足需求,大部分人都是这样做的

还有一种扩展是自定义注解,例如自定义一个 Role 或 Permission 注解,然后在拦截器中可以通过 inv.getMethod().getAnnotation() 获取到 action 方法上的注解,随后再做什么控制随意了

2016-10-09 19:55

@xRhbN 光是 hash 不行,必须要加随机盐,保障不被彩虹表破解

2016-10-09 19:55

这种情况是从数据库反射时得到的是 Long 型,长度是 11,再检查一下是否为无符号整型unsigned int,去掉 unsigned 的勾选即可