2010-02-22 101 views
1

我基於ASP.NET MVC框架提供的XmlRouteCollection類的現有功能,很容易地在C#(string GetUrl(new { controller = "foo", action = "bar", baz = "fnord" })中編寫了類似這樣的東西(爲什麼它沒有出現在框中,超出了我的範圍;所需的代碼是微不足道的)。我現在面臨着一個JSP項目,而且我需要相同的能力:根據路由規則列表集中在一個地方生成所有URL的邏輯。是否有一些代碼可以重用/適應在Java中執行此操作?這似乎是一個普遍的要求,但是谷歌證明對於找到這樣的東西毫無幫助。Ruby on Rails的「url_for」是否有Java的等價物?

+0

1)給我們代碼示例,以便我們能夠理解你在說什麼。 2)編輯你的頁面,我們看不到正確的代碼示例(用C#)。 – 2010-02-22 20:28:49

+0

JSP通常只用作視圖層。您是否使用Web應用程序框架,如果是,哪一個? – 2010-02-22 20:48:03

+0

我需要的基本上是兩個函數:RegisterRoute(Dictionary參數名稱和值,string urlTemplate);和GetUrl(Dictionary parameterNamesAndValues)。例如RegisterRoute({controller:'foo',action:'bar'},「http://domain.name/some/path/{action}/{baz}.png」),然後GetUrl({controller:' foo',action:'bar',baz:'fnord'})將返回「http://domain.name/some/path/bar/fnord.png」)。 C#代碼不是很有趣。至於網絡框架,該項目與不提供上述功能的商業閉源電子商務Web框架相結合。代碼的時間,我猜... – 2010-02-22 21:52:36

回答

1

原始JSP不提供此類功能。有兩個選擇:

  1. 使用存在框架,支持這個(如grailsplay
  2. 或自己實現它,但它沒有這麼輕鬆,只是因爲你也需要實現所有其他爲此的部分RoR。
+0

我不得不使用特定的框架,所以使用類似grails或play的東西將無法正常工作:-(我想我必須自己實現它... – 2010-02-22 21:45:53

+1

哦,它是真的很難實現,我曾嘗試過幾次:( – 2010-02-22 22:01:21

+0

硬並不意味着不可能的權利?= D – 2010-06-16 07:15:21

0

JSP只是一個基於Java的視圖技術,它不是一個MVC框架,您可以最好地將JSP與「經典ASP」進行比較。 ASP.NET-MVC的Java EE對應的是JSF(JavaServer Faces)。我完全瞭解JSF,但我似乎沒有認識到你需要的部分。看起來更像是RESTFul味。在這種情況下,看看Spring 3.0 MVC。它提供了"URI-template" annotations監聽對某些RESTFul請求。誠然,這也不是你想要的,但它可能會給你一些新的見解和想法。

+0

春天的URI模板幾乎正是我需要的,除了他們在錯誤的方向工作,他們解析一個URL和將它與一個動作相匹配;我需要指定一個動作並生成一個URL。無論如何,這是學術性的;我不能使用Spring,我堅持使用商業框架(有很多其他的東西,但不是這個)。 – 2010-02-23 00:06:02

相關問題