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 的勾选即可

2016-10-09 16:42

用一个 cron4j 插件,定时检测状态(时间也是一种状态),根据状态做出处理,cron4j 插件在此:http://www.jfinal.com/share/37

建议点击文章下方的收藏按钮,便于以后随时查看

2016-10-09 16:39

方法定义无法用 transient 来修饰,这是个语法错误,所以这个问题也就不存在了

2016-10-09 15:53

@spectre 第一种方法,让提交表单这个操作使用 javascript,在提交之前将隐藏域的值与 action 的值拼接起来即可,第二种方法就是先 getFile()然再再 getPara()得到 filePath,最后再 uf.getFile().renameTo(filePath + fileName) 将原来文件存放的路由改变一下

2016-10-09 15:50

绝对不要在数据库中存放密码明文,而且一定要用 salt 随机盐值,随止彩虹表破解

2016-10-09 15:49

首先如果是 sql 语句得到的这个 list,那么在 select 中指定获取哪些字段,不要使用 select *

其次可以使用 user.remove("password", "salt") 来一次性移除多个不想要的属性

再次可以通过 user.keep("id", "nickName", ...) 一次性只 keep 住希望留住的属性

最后,存放在数据库中的 password 必须是经过加 salt 并 hash 的,算法如下:
hashedPass = HashKit.sha256(password + 32位salt随机字符串)

2016-10-09 15:45

可能是多次上传使用的不同参数生成的多个目录,误认为是一次上传。将目录先删干净,然后设置断点,单步调试确定错误在哪里

2016-10-09 15:10

几乎所有人碰到这个问题都是由于 log4j.properties 配置文件没有或者放的位置不对,导致日志不工作,检查一下,搞定后回来再分享一下

2016-10-09 15:09

补充一点,如果这个 filePath 是用户输入的,可以变化的,那么在 form 表单 action 属性上不方便写死,可以用 javascript 动态改变这个 action 值