2016-08-22 15:51

社区添加 "点赞" 功能后,给你 1024 个赞

2016-08-22 15:49

你终于回来分享了,好友没见你来逛逛 jfinal 社区了,有空多来走走啊 ^_^

2016-08-22 15:47

再补充一下第一点,在现有的 jfinal 路由设计之上,其实只需要写一个工具类就可以将 me.add(...) 去掉了,这个已经有很多人在这么使用了:me.add(AutoRoutes())

2016-08-22 15:46

第二个建议,"p1=xx-p2=yy-p3=zz"这种参数本身用问号挂参就可以了,例如:localhost/article?p1=xx&p2=yy&p3=zz,而 jfinal "xx-yy-zz" 的参数本身就是为了支持更加简短的 url 而设计的。感谢你的反馈,如果觉得有什么还太方便的地方,多多反馈哈

2016-08-22 15:44

楼主的第一个建议,jfinal 基本上是采用的这种方式,只不过对于每一个 controller 要进行一下类似注册的操作:me.add(controllerKey, controllerClass, viewPath),最后生成的路由与类主所说的是一致的:"/controllerKey/method/parameters",可能楼主是希望在此基础之上,连 me.add(...) 这个操作都去掉之。这个确实很容易去掉,只不过,去掉以后,需要引入额外的概念去完善所缺失的功能,例如,用户希望路由的 controllerKey 是随意变的,有时候不希望与约定一致,而且注册相对于扫描反射的方式更加安全,因为扫描的时候可能会扫描到第三方 jar 中的controller

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 引用生效即可