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 值

2016-10-09 15:02

最简单的办法是在form表单的action属性上使用 urlPara 或者用问号挂参的方式将 path 传过来,这样就可以在 getFile() 之前通过 getPara(...) 获取了,例如:
action="/upload?filePath=/mypath/..."
filePath = getPara("filePath");
uf = getFile("filePath");

还有一种办法麻烦点,先 uf = getFile() 然后,filePath = getPara("filePath"); 最后再用 uf.renameTo(filePath + fileName) 做后续的转换