首页
App
&
Coffee
文档
项目
分享
反馈
俱乐部
登录
注册
JFinal 的 creatToken 和 Token 验证有关系吗?
排行老七
2017-07-17 19:26
如题,因为手册上没写,百度到的也是几年前的答案。求解
项目:
JFinal
3
评论区
JFinal
2017-07-17 21:23
在第一个 action 中先使用 createToken 创建 token,回到页面时将该 token 值放入表单隐藏域中与数据一起提交到第二个 action,在第二个 action 中通过 validateToken 验证,用来判断是否重复提交
回复
maxwade
2018-02-27 11:05
所以createtoken()相当于创建一个隐藏参数,用于第二个action中的校验了?是可这样理解吗?
回复
JFinal
2018-02-27 18:21
@maxwade
可以这样理解,虽然有个约定的隐藏参数
这个约定的参数在 com.jfinal.core.Const.java 中有定义:
String DEFAULT_TOKEN_NAME = "_jfinal_token";
但是,这个 "_jfinal_token" 名是不需要关注的,因为 jfinal 还会帮你生成整个隐藏表单域的内容,如下:
StringBuilder sb = new StringBuilder();
sb.append("<input type='hidden' name='").append(tokenName).append("' id='").append(tokenName).append("' value='").append(tokenId).append("' />");
controller.setAttr("token", sb.toString());
注意看最后一行代码,用户所需要做的,只需要在表单步通过下面的代码输出该 input
隐藏域:
#(token)
上面的 #(token) 用在 form 表单之中,剩下的事情就是: validateToken() 了
回复
himans
2020-07-16 10:50
Controller代码看到Token这里,搜了一下,收藏了。
回复
发送
我要反馈
热门反馈
扫码入社