Jfinal url 是否支持正则表达式?

想法和行动 发布于 2013/11/22 10:58
阅读 487
收藏 0

@Jfinal

 jfinal 的Url是否支持正则表达式的方式 ?

   我有这样一个需求: url 格式如下 : http://localhost/beijing/service-tesu_skill-good

   其中localhost之后的beijing和后面的一串字符串是变化的,我想用正则表达式来做url匹配,貌似Jfinal不支持这种方式, 请问有解决方案么?谢谢。

加载中
1
菜根乱谭
菜根乱谭

应该可以通过自定义的handler来实现吧。

1
进击的代码
进击的代码

引用来自“谭明智”的答案

应该可以通过自定义的handler来实现吧。

正解~通过handler来处理url,想怎么都行
0
缪斯的情人
缪斯的情人
不支持,正则匹配降低url匹配效率,所以jfinal未提供。正如上面所说可以通过定义handler来实现
缪斯的情人
缪斯的情人
回复 @nginx困惑 : 如果因为多写一个handler,就放弃一个框架,那么你这是一叶障目不见泰山。@jfinal
想法和行动
想法和行动
回复 @缪斯的情人 : 恩。我明白你的意思,我的意思是 jfinal 相对于我的应用而言,还不如选用其他的框架来的省事
缪斯的情人
缪斯的情人
回复 @nginx困惑 : url正则匹配实则也是处理的你所有请求
想法和行动
想法和行动
如果用handler是不是意味着需要拦截所有的请求然后再自己做正则表达式匹配 ?如果是这样,看了jfinal不太适合我啊。
0
JFinal
JFinal
当 urlPara 不使用时,JFinal 天然支持这种风格,即后面的“  service-tesu_skill-good”当成了 urlPara
想法和行动
想法和行动
但我Url中的beijing也是动态变化的,也就是说我 可能会有两个urlPara,这种方式可行么?可不可以举一个具体的例子呢?
0
JFinal
JFinal
回复 @nginx困惑 : 定制一个 Handler,想怎么做都可以。如果是有限的action需要这样的处理,可以这样来:


public RouteHandle extends Handler {
  public void handle(String target, ....) {
    if (target.startsWith("/xxx/yyy"))
       target = target.subString(0, 8);
    else if(target.startsWith("/xxx/zzz"))
       target = target.subString(0, 8);
    nextHandler.handle(target, ...);
  }
}

上面的例子处理了以 "/xxx/yyy" 及 "/xxx/zzz"打头的 action 请求,将后面自由的"service-tesu_skill-good"切掉了。

    这仅是一个示例,具体实现的时候可以做很多优化

返回顶部
顶部