2009-12-04 14 views
6

Struts 1'de struts-config.xml dosyasında aşağıdaki gibi bir bildirimde bulunabilirsiniz:Bir URL'yi ilkbaharda başka bir URL'ye yönlendirmenin bir yolu var mı?

<action path="/first" forward="/second.do"> 

İlkbaharda da benzer bir şey olabilir mi, yoksa bir URL'yi yalnızca bir denetleyiciye eşleyebilir miyim? İlkbahar 2.5.x kullanıyorum.

Elbette URL'yi aynı denetleyiciyle eşleştirebilirim:

<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> 
    <property name="mappings"> 
    <props> 
     <prop key="/first.do">theController</prop> 
     <prop key="/second.do">theController</prop> 
     ... 

Veya org.springframework.web.servlet.mvc.ParameterizableViewController'ı kullanabilir ve benzer bir şeye sahip olabilir:

<bean id="theDummyController" class="org.springframework.web.servlet.mvc.ParameterizableViewController"> 
    <property name="viewName" value="forward:second.do"/> 
</bean> 

<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> 
    <property name="mappings"> 
    <props> 
     <prop key="/first.do">theDummyController</prop> 
     <prop key="/second.do">theController</prop> 
     ... 

Biliyorum karmaşık şeyler yapabilirim ve ben sadece işi yapan basit şeylere bağlı kalmalı, ama bu türden bir ifadeye daha çok benzemeyi isterim: "bu URL aslında bu diğer URL'ye bir kısayol (veya diğer ad)" (sorma Neden ... uzun hikaye ...) ParameterizableViewController ile bir şekilde görünür ama tamamen değil.

Yani, bu mümkün mü?

Teşekkürler!

cevap

1

-florin ben yardımcı olur umarım

. Ben de bir URL yakalar ve başka yönlendirirse bir önleme eklemek düşünüyordum

<bean id="aliasUrlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> 
    <description> 
    <![CDATA[ 
     The following URLs are in fact shortcuts (or aliases) 
     to other URLs etc etc (...I'll spare you the ugly part) 
    ]]> 
    </description> 
    <property name="mappings"> 
    <props> 
     <prop key="/first.do">theController</prop> 
     ... 

<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> 
    <property name="mappings"> 
    <props> 
     <prop key="/second.do">theController</prop> 
     ... 
0

Spring MVC ile orada istediğinizi yapmanın en kolay yolunu bilmek için yeterince tanıdık değilim. Ancak, UrlRewriteFilter project, bir URL'yi başka bir URL'ye yönlendirmek için kurulum kurallarının yapılmasını kolaylaştırır.

0

"Bu URL aslında HandlerInterceptor uygulayarak bu URL’de kısayol (veya diğer ad)" belirtmenize olanak tanıyan kolayca bir şeyler hazırlayabilir ve uygulamanızın yönlendirilmesi gereken URL'lerin eşlemesi olan bir özellik içermesini sağlayın. veya diğer URL’lere yönlendirin.

XML'inizde, bu engelleyici için bir fasulye ekleyin ve hangi URL'lerin neye yönlendirmesi gerektiğini yapılandırın ve önleyici ile SimpleUrlHandlerMapping'in engelleyicileri özelliğine bir başvuru ekleyin.

+0

ardından kırmaya yanlış dönen: Sonra içerdiği eşleştirmeleri şey gibi tüm ilgili, ne çok ayrıntılı bilgi başvurdu yürütme zinciri. Ancak, işleyici eşleştirmesi, gelen istek için bir yürütme zincirini çözümlemiyor mu? Ancak o zaman DispatcherServlet, iade edilen zincirde bulunan işleyiciyi ve önleyicileri çalıştıracaktır. Bu yüzden, URL'yi "bir şey" ile eşleştirmeli ve sonra engelleyicinin geri kalanı işlemesine izin vermeliyim. Ama onu neyle eşleştireceğim? –

+0

Aslında, işleyicinin her bir URL için bir engelleyiciye ulaşmadan önce bir eşleştirmeye sahip olması gerekip gerekmediğinden emin değilim, ancak bunu yaparsa: harita * 404 sayfasına (bulunamadı) ve iyi olmalısınız. –

0

URL tabanlı kuralları Spring yapılandırma dosyalarının dışında yönetmenizi öneririm? Spring config dosyalarını temiz tutun ve URL'lerinizi yeniden yazın/yönetin. http://tuckey.org/urlrewrite/'a bakın. Sonunda URL takma adları gruplanmış ayrı URL işleyici eşlemesi oluşturma sona erdi

İlgili konular