2017-03-06 17:29
@sruz 最省事的办法是将数据表字段直接搞成驼峰的,然后使用 MixedJsonFactory,所有事情都没有了
FastJson 除了不支持 record 以外,一切都好,这也是 MixedJsonFactory 之所以存在的最大原因
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
2017-03-06 16:42
jfinal 自身定位于 MVC + ORM,并且自 jfinal 2.1 版本以来,model 也具有了 getter、setter 方法,所以理论上来说 jfinal 项目可以作为微服务架构之下的节点而存在,选择自己喜欢爱的微服务支持的第三方直接用就好,例如使用 doubbo
用 jfinal 来做微服务时,主要注意如下几点:
1:每个 jfinal 节点,如果同时又做了集群,那么让节点是无状态,如果有状态则要有状态同步机制,例如节点 JVM 内的缓存要在集群之中同步
2:每个 jfinal 节点,可以使用 renderJson() 实现 rest 服务,也可以使用 rpc + 业务层拦截器的方式直通业务层,这样可以连控制器都省了
2017-03-06 16:37
@Ferrari8899 终极解决办法是打断点,然后单步进行调试,动态地去看程序到底在做些什么,而不要静态去看源代码
2017-03-06 16:21
@Ferrari8899 调试的时候,没有那个字段,那肯定是取不到值的,注意排查一下错误
2017-03-06 15:58
@Ferrari8899 看控制台的异常,不要看浏览器,如果控制台没有异常,则检查一下日志配置好没有,异常是通过日志组件输出的