一直以来社区都有大量用户问前端穿过来的json数据怎么接收,作者一直都是建议大家使用HttpKit.readData(getRequest());的方式自己去做解析映射到map,再使用map.get("xxx")获取,这些都太重复单调了,完全可以从框架底层Action 参数注入支持。
通过request的content-type获取是否是json类型,在通过@Para("user.name") String name的方式取值,对于顶层的json可以免@Para注解直接映射变量名,比如json体为 {"username":"abc","password":"123456"},可以直接通过String username,String password取值,对于复杂的则通过@Para("user.name") String name的方式取值
题外话:
一直以来JFinal都使开发效率提升了一大截,但是隔壁SpringBoot社区也蓬勃发展着,个人觉得有必要再持续优化开发效率,优化一些实际常用场景,而非只提供通用场景,比如SpringBoot对于Db操作都已经支持selectOne了,而JFinal只提供了selectById和selectFirst(需写sql),实际业务来说就有很多通过某些字段查询单条记录的情况,比如findByUsername,findByMobile,findByToken,实现思路作者可以提供一个findOne(String field,Object value)或者findOne(Map map)或者findOne(Object... fieldvalues),fieldvalues为field,value,field,value...形式