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)

2017-03-06 17:31

对于上面注意的第一点来说,并不是专门针对 jfinal 来说的,使用其他开发框架也一样

2017-03-06 17:30

@出关客 文档中有一小节对 map 定义有过说明,这个就是 key value 传参方案

2017-03-06 17:29

@sruz 最省事的办法是将数据表字段直接搞成驼峰的,然后使用 MixedJsonFactory,所有事情都没有了

FastJson 除了不支持 record 以外,一切都好,这也是 MixedJsonFactory 之所以存在的最大原因

2017-03-06 17:27

简单说,就是不存在单独的管理员登录的入口,让攻击者少了一个可攻击的地方,只有登录以后的管理员身份可以访问 admin,否则全部显示 404 页面

2017-03-06 17:26

在前端登录进去,然后访问一下 localhost/admin 即可,jfinal club 项目中有一个说明文件,说明了为何这样处理,仔细看一下里面的说明文件

2017-03-06 17:13

@JFinal 虽然看似程序 setAttr 过来的是一个 Object 型对象,但这个 Object 型对象本质上仍然是 ArrayList

2017-03-06 17:12

@Ferrari8899 不要去猜测程序的行为,一定要单步调试,程序不是写出来的,是调试出来的

2017-03-06 17:11

@Ferrari8899 注意看异常中的这句:TemplateException: In the class java.util.ArrayList can not find getUserName() method, also can not find "userName" field

已经明确说明了是在调用 java.util.ArrayList 这个对象的 getUserName() 方法,仔细单步调试一下程序

2017-03-06 17:04

@Ferrari8899 异常已经很明显,你是在对一个 ArrayList 型的对象进行 getUserName() 取值,显然是取不到的,对这个 ArrayList 进行迭代就可以了:
#for(x : list)
#(x.userName)
#end