2012-11-10 45 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