2011-02-15 23 views
2

使用Restlets可以使用基於URI template specification的系統路由URI。我希望能夠匹配以下模式Java Restlets - 匹配任意長的URI路徑參數

http://www.blah.com/something/...arbitrarily long path.../somethingelse/ 

所以哪條路線的URI,下面的兩個URI將匹配和路由一樣:

http://www.blah.com/something/a/b/c/d/somethingelse/ 

and: 

http://www.blah.com/something/z/y/x/w/v/somethingelse/ 

我怎樣才能做到這一點使用Restlets?

乾杯,

皮特

回答

2

最常見的方式來設置的路線是一個路由器,就像這樣:

router.attach("/path/to/resource", MyResource.class); 

'附加' 返回Route,其方法setMatchingMode ,所以你可以這樣做:

router.attach("/path/to/resource", MyResource.class).setMatchingMode(Template.MODE_STARTS_WITH); 

這將路線設置爲匹配任何以提供的模式開頭的URL。

我希望這足以滿足您的需求。我不知道任何內置的方式來匹配具有特定前綴和特定後綴的URL。但是,如果這正是你需要的,你可以實現你自己的Template,Route等子類(我不確定哪個是需要的)。

我很確定已經討論過基於正則表達式的路由在Restlet郵件列表中;你可能想在那裏搜索。