JFinal在web应用中的疑问

Neoman 发布于 2014/04/01 10:02
阅读 364
收藏 1

【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”

@JFinal 你好,对JFinal代码还没深入去看,于是有几个困惑的地方,想跟你请教:

JFinal的web应用中
1、JFinal如何区分 如下两种路由规则
controllerKey/method
controllerKey/v0-v1
2、 好像拦截器和handler他们的控制权没啥区别?(唯一的区别,是不是:拦截器拦截所有请求,包括静态资源的请求,而handler仅仅拦截Action,但通常应用中,静态资源被web服务一处理了。)
3、Db.pro操作不同数据源时 怎么没提供save的api啊?

加载中
0
JFinal
JFinal


1:最大化匹配原则,先匹配整个串,如果匹配上就那是它了,否则就将最后一部分当成 urlPara

2:Interceptor的配置更灵活,可以是拦截全局,可以是拦截某个Controller中所有action、也可以是拦截某个action 方法,而Handler只能是拦截所有请求。Interceptor 在大部分情况下处理更方便,可以方便得到actionKey、controllerKey和controller本身,得到controller本身后就可以很方便地setAttr(...)、render(...),而Handler是处在更外层的拦截,controller、action这些都还没有确定下来。Handler比较适合当请求到来时需要改变对 url 进行处理的情况,如给url做伪静态,可以参考com.jfinal.ext.handler.FackStaticHandler.java,也用来处理 Interceptor处理不了的情况,如处理静态请求

3:通过 Db.pro 查出来的 Record对象中会被自动置入一个 configName 属性值,所以此时 Record 所对应的数据源就是确定的了,所以通过 Db.save(record) 就可以处理。已经考虑过未来会将这个 configName 值去掉,然后在 Db.pro 中添加相应带有 configName 的方法


JFinal
JFinal
回复 @Neoman : 会存到主数据源上,如果想存到其它数据源上可以先调用一下 record.setConfig(othterConfigName)
Neoman
Neoman
第三点还是有点困惑,通过 我save到指定数据源之前没有通过通过 Db.pro 查询呢?那Db.save 会保存到哪里去?
0
菜根乱谭
菜根乱谭
该评论暂时无法显示,详情咨询 QQ 群:点此入群
Neoman
Neoman
回复 @谭明智 : 参数是未知的,所以,由此一问
菜根乱谭
菜根乱谭
回复 @Neoman : 如果存在aa,bb这样的方法,就不会按照参数了,如果重复的话,只能当成method了,那就没办法了,尽量参数不要和方法名重复。
Neoman
Neoman
该评论暂时无法显示,详情咨询 QQ 群:点此入群
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部