2017-08-02 15:57

这是一个空指针异常,建议单步调试解决一下

2017-08-02 15:57

你应该是用了 Db + Record 模式,对于 Record 对象转 json, 使用 jfinal 自己的 json 转换类可以识别,而 fastjson jackson 对于 record 的转换,是先调用了其 getColumns() 得到 map 后进行的转换

建议尽量使用生成了 getter 方法的 Model 再进行转换,jackson 与 fastjson 会根据它的 getter 方法进行转换

多种转换方式可以自由搭配:
1:使用 jfinal 自己的转换工具 JFinalJson.getJson().toJson(...)
2:使用 jackson 工具 Jackson.getJson().toJson(...)

最后再通过 renderJson(jsonString) 进行输出,因为 renderJson 是可以直接认 String 参数的

me.setJsonFactory(...) 是配置默认 json 转换工具,在此基础上仍然可以灵活搭配来使用,此外, jfinal 还提供了一个 MixedJsonFactory 可以让转 json 时使用 jfinal 实现,而 parse 时使用 fastjson 实现

2017-08-02 15:45

@guang 刚刚还看到一个问题,Kv kv = Kv.create() 这个属性需要挪到 exec() 方法里面去创建,因为模板中的指令节点是一次性建好以后,多线程重用的,所以需要保持线程安全

2017-08-02 15:43

@大龙 这倒真被挖掘出了一个新需求,刚刚已经为 Assign 添加了 getId()、getIndex()、getRight() 三个方法,新版本已经提交至 git:https://git.oschina.net/jfinal/jfinal

2017-08-02 12:09

应该是 cglib 在 java 8 下的 bug,换个cglib 的新版本试试

2017-08-02 11:01

思路相当不错,是这么来玩的,赞一个 ^_^

有个小建议,Assign.java 源代码其实不需要改变,在面对任何表达式的时候,只需要调用它的 eval 方法就可以获取到值了,例如对于 Assign 来说获取 Assign.right 这个 right 变量表达式的值可以是这样:
Object value = assign.eval(scope);

因为 assign 表达式整体的值就等于 assign.right 的值

2017-08-02 10:04

这个功能必须有

2017-08-01 11:39

@风花狂月 相当有悟性啊,十分看好你 ^_^

2017-08-01 11:36

@风花狂月 这样传参可以满足需求,还可以将 teacherId 放到 url 之中,而 body 中只传学生信息,这个不是很重要,关键是满足需求

2017-08-01 11:34

@kiss火葱 你所指的搭建服务器是什么意思? 是电脑服务器还是啥,普通电脑就可以运行,我建议你先学点基础,这个确实不好再回答了,相当于大学一年级入门时要学的东西了

2017-08-01 11:31

不仅可以,jfinal 3.1 还可以同时支持 jfinal template engine、jsp、velocity、freemarker,只需要像下面这样用:
1:使用 engine 时用: render(String)
2:使用 jsp 时用: renderJsp(String)
3:使用 freemarker 时用:renderFreemarker(String)

jfinal 天然就是支持各种模板引擎混合使用的,其中 render(String) 是默认模板引擎

2017-08-01 11:26

@风花狂月 我建议向两个方向考虑:
1:对于简单情况,将 http 请求的“动词”拿到 url 中即可
2:如果参数比较复杂,则需要借助表单或者叫 http body 传递参数的方式搞定,body 中可以传递极为复杂的参数,例如传入一个 json 结构的数据

随着提交数据结构的复杂度提升,不是所有参数都能在 url 中就搞定的,即便是 Roy Fielding 博士建议的 URL 风格必然也有搞不定的情况,这时候就要请出 http body 传参

2017-08-01 11:07

@吃桃子的松鼠 这里注意一下 get set 方法,只是第一个参数为 String 而已,第二个参数为 Object 类型,方便你传入适当的类型进去,例如你传入 timestamp 进去

此外,生成过 getter 、setter 方法的,可以直接用 setCreateTime(Timestamp) 以及 getCreateTime() ,不需要用 set(String, Object)

2017-08-01 11:05

@吃桃子的松鼠 这个不是替换的问题,是什么类型就要用什么类型,java 是静态类型语言

2017-08-01 11:01

看了一下是支持的: http://blog.csdn.net/zmx729618/article/details/52846546

jfinal 3.2 打算加这个条形码功能,哈哈