2012-11-10 41 views
2

我开始使用cppcms使该获取输入从路径就像一个简单的网站+ “服务”: /maindb/2012/11/2 /决赛/ ....cppcms网址dispather

现在我注意到,漂亮的url处理只有一个正则表达式调度器多达4个参数,将被赋予被调用的函数和一个没有正则表达式的函数甚至没有得到任何连路径。

现在什么是实现超过4个参数/子文件夹的最可行的方法。 我是否必须编写自己的url处理,如果是的话,我从哪里获得url?

url类是公共的足以继承它,只是扩展它easiely更长的功能?

或者还有其他方式我应该怎么做? (因为4个参数看起来还挺非常少的)

+0

试图继承url_dispatcher,但它导致需要创建另一个应用程序类ect。不是真的微不足道,迄今为止没有看到由于私人和其他问题而无法编译它,所以这个解决方案是不存在的,我猜... – boscowitch

+0

soo我发现了一些微不足道的正则表达式方式,至少让我的字符串(例如:dispatcher()。assign(“/ maindb /(.*)",& myApp :: handlemaindb,this,1);其他的subdir/sub url用于手动解析。但即时通讯想知道这是否是我能做的最好的? (顺便说一句,我不能添加一个答案给我自己的问题,只有这个评论...) – boscowitch

回答

1

两点:

  1. 如果你有可能正在组织你的URL到层子文件夹。见

    http://cppcms.com/wikipp/en/page/cppcms_1x_tut_hierarchy

  2. 如果您需要更多然后4个参数,你应该:

    • 检查,如果你真的组织你的申请权(见上文)
    • 结合几起案件为单一的正则表达式和然后在参数中拆分它们

      例如(/\d\d\d\d/\d\d/\d\d)/(\w+)其中第一个数据是加工数据而不是分开的年,月日。

P.S。:地址分派器不被设计为从衍生。

+0

是的,我用了有点2. aproach(即使我然后直接使用boost regex),但分组不是一个坏的理想(即使我例子很糟糕,我没有一个完整的日期,只有一年和其他的东西,如名称,创建者等..)。 hirachys虽然不会正常工作导致几乎永远“子文件夹”是一个动态搜索字符串,进入一个SQL搜索,idear是过滤重新数据与子文件夹,我想我可以使用hirachy 2模式(数据为HTML网站或作为JSON的脚本) – boscowitch