2016-08-22 15:24

@Javen 回复发贴人的时候,不需要 @对方, 对方就可以收到 @ 消息的,感谢支持

2016-08-22 11:58

@yuan_123 你只要记住:控制多线程不能同时进入一个方法,只能一个一个进入同一个方法,必须保证这些个线程是作用在同一个对象之上

2016-08-22 11:39

你这个对象是放在哪里的?如果是在 controller 中,可以将其声明我 static 的:
private static MySerivce myService = new MySerivce();
然后在 controller 中使用这个 myService 的时候就是共享的同一个对象了, synchronized 就有效了

2016-08-22 11:37

@yuan_123 对,但一般不是工具类方法都不用 static 方法。只要保障多线程都在使用的在这同一个对象调用该方法就可以,不一定要使用 static 方法

2016-08-22 11:32

补充一下,"非 static" synchronized 方法,如果想让其有效,就必须保证多线程都在在同一个对象实例上调用的该方法,而不是 new 出不同的对象去调用该方法

2016-08-22 11:28

如果你在此类之上创建了多个对象,即便这个类上的方法用了 synchronized 也是没用的,因为 synchronized 是针对对象。如果要针对类级需要将方法声明为 static,这个是 java 基础,此外,你的昵称里面带有 @ 字符,所以 at 不到你,我帮你将 @ 改为下划线可否?

2016-08-21 23:10

@alexjfinal 直接传参,例如 ${obj.method(1,2,3, "key")} ,just do it

2016-08-21 09:43

@zpk 通过 eclipse 的向导去创建一个 java web 项目(貌似叫Dynamic web project),让这个项目可以正常工作,然后再将 jfinal 项目的src下面以及 webapp 下面的文件 copy 到这个项目之下,让这个项目可以继续正常运行,这是最直观的不用心里挂记着是不是 jfinal 的办法

2016-08-21 09:37

@zpk 把项目当成普通 java web 项目处理就可以了,完全忘记这是一个 jfinal 项目

2016-08-20 20:32

这些类都是 jfinal 2.2 中自带的,升级到 jfinal 2.2,并且保障 jar 引用生效即可

2016-08-20 16:04

classes 路径下没有任何文件,充分证明编译后的目标文件没有到达这里,两种可能,一是路径配置不对,二是没有编译

jfinal 是标准的普通 java web 项目,所以只要使用以前你部署 java web 的经验就可以了。手册中介绍的将路径改为 "/工程/WebRoot/WEB-INF/classes" 只是为了让集成 jetty 正常工作,对于楼主使用的 tomcat 部署开发方式就不再需要这样做

历史上所有出现这个异常的,全都是改配置就可以了,建议多尝试,例如重新创建项目

2016-08-20 15:55

正确的用法是先用 incr("test"); 或者 incrBy("test", xxx) 进行初始化,然后后面再接着 incr("test") 或者 incrBy("test", xxx),由于 redis plugin 采用了序列化,所以通过 setex(...) 放入的数据已被序列化

2016-08-19 23:52

没秒懂是什么意思? list 循环是指什么? 是指 freemarker 的 list 的迭代指令? 如果是的可以直接在 freemarker 中调用 java 方法,很灵活方便

2016-08-19 23:52

就要是这种探索的精神,jfinal 很多实用的功能并未写在手册中,为的就是让大家在探索发现以后,有成就感,也更有利于大家的求知欲与探险精神

2016-08-19 23:40

两个可能性:一是 User 没有继承 com.jfinal.plugin.activerecord.Model 类,或者其子类。二是在 YourJFinalConfig 中 import User 这个类时引入的并不是希望的类,而是其它第三方 jar 包中的 User类,要知道 User 这个类名称是非常常用的