2019-10-17 14:48
@ben0133 补充: 使用 JDK 自带的 visual VM 检查一下项目的资源回收情况,访问各个资源,看内存回收是否正常,线程数据量的增减是否正确
2019-10-17 11:17
需要先转成 Model,并且该 Model 是通过生成器生成了 setter 方法的 ,假定 Model 名是 Article 可以通过如下代码存入数据库:
Article article = FastJson.getJson().parse(jsonString, Article.class);
article.save();
如果 jsonString 中的数据与 Article 的对应关系并不是严格对应字段的,可以通过 Map 作为中间转换:
Map map = FastJson.getJson().parse(jsonString, Map.class);
Article article = new Article();
article.setXxx(map.get(xxx));
article.setYyy(map.get(yyy));
article.save();
2019-10-17 10:43
@xspycsj 用 tomcat 就要将项目完全当成是一个普通的 java web 项目,启动方式与其它的 java web 方式完全一样
那么就不需要用 jfinal 提供的 main 方法启动,一定要看文档中有关说明:
https://www.jfinal.com/doc/1-11
用传统方式启动的时候,删掉 jetty-server.jar
2019-10-16 17:26
@xspycsj 注意要将 class path 指向 WEB-INF/classes,否则找不到类,也找不到 web.xml
这纯粹是一个 IDEA 的使用问题,你运行其它类型的 java web 项目同样会面临这个问题
2019-10-16 17:17
@小剑魔 这个是十分罕见的纯 eclispe 问题,建议不要浪费时间折腾,重新解压安装 eclipse 完事
折腾这种 eclipse 的 bug 没有意义
2019-10-16 14:59
@任小伊roy 类型不对而已,单步调试了解一下具体类型,然后合理地使用对象类型来转换
如果还是解决不了,大不了将其中的数据读出来再放到新的 HashMap 中:
Map ret = new HashMap();
for (Iterator it=super.getParameterMap().entrySet().iterator(); it.hasNext();) {
Entry e = it.next();
ret.put(e.getKey(), e.getValue();
}
2019-10-16 11:31
@鲁智深 我估计是生成器在输出带小数点的字段名的时候,当成了 field 表达式,可以通过拿到模板文件:
https://gitee.com/jfinal/jfinal/blob/master/src/main/java/com/jfinal/plugin/activerecord/generator/base_model_template.jf
然后,将这个文件复制出来,改一改里面出问题的表达式,最后再为生成器配置自己的模板来代替官方的模板:
generator.setBaseModelTemplate("my_template.jf");
generator.generate();
类似的,除了 base_model_template.jf 以外,其它三类模板也可以通过这种方法来自己定制
由于 enjoy 模板有十分丰富的表达式,所以可以通过改变表达式来解决,例如:
#(obj.name.abc)
上述表达式如果其中的 name.abc 是作为字段名存在的,而 obj 又是一个 Map 对象的话,可以改成:
#(obj.get("name.abc"))
或者改成:
#(obj["name.abc"])
上述这种表达式换一种写法的方式可以参考文档
2019-10-15 22:29
@杜福忠 技术起家创业,一定要注意抛弃技术思维
要以用户/客户价值为中心,技术当成工具、手段
我身边那些技术好的朋友创业都失败了,相反技术很差的创业却赚了不少钱。因为技术差的往往不会有技术思维,而更容易将目标专注于实现用户价值
希望你不要在创业过程中掉入技术思维的坑
当然,在创业过程中选择可以提升效率、降低成本的技术是很重要的,技术是工具不是目标,但好用的工具可以让工作事半功倍