2009-06-10 8 views
0

SpringでRESTスタイルアプリケーションを開発しようとしていますが、URLマッピングが期待通りに機能していません。私はdevicesControllerSpring 2.56でRESTスタイルのURLが動作するようにマッピングできない

http://localhost:8080/NetTraceHQ/admin/device/1 
http://localhost:8080/NetTraceHQ/admin/device/ 
http://localhost:8080/NetTraceHQ/admin/device enter code here 
に次のURLをマップするために使用したい

<bean name="urlMapping" 
     class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> 
    <property name="mappings"> 
     <props> 
      <prop key="/**/device/**">devicesController</prop> 
     </props> 
    </property> 
</bean> 

を持って、私はNetTRaceHQ-servlet.xmlで

<servlet-mapping> 
    <servlet-name>UrlParsing</servlet-name> 
    <url-pattern>/device/</url-pattern> 
</servlet-mapping> 

を持っているweb.xmlの

NetTRaceHQ-servlet.xmlの現在の設定は
で機能しますhttp://localhost:8080/NetTraceHQ/admin/device

しかし、その他は失敗します。 ノー運

答えをGoogleで検索し、任意の運を持っていなかったと

/**/device/* 
/**/device 
/**/device/**/ 
/admin/device/* 

などを試してみました。

+1

erty、それはRESTのURLのようなものがあることはよくある誤解です。 RESTの論文には言及されていない。/urls/like/thisを指定しても、サービスは多かれ少なかれRESTfulになりません。しかし、きれいなURL(通常はRESTのlingoのURI)に問題はありません。ちょうどFYI。 – nategood

答えて

0

alwaysUseFullPathをtrueに設定してリゾルバを構成します。

< Bean名= "urlMapping" クラス= "org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <プロパティ名= "マッピング"> <小道具> <小道具キー= "/ /デバイス/ "> devicesController < /小道具> < /小道具> > <プロパティ名= < /プロパティ" alwaysUseFullPath "> <値>真< /値> < /小道具ただ明確にする>

< /bean> 

-Varghees Samraj

0

これはうまくいくはずですが、私は何か他のものが誤って設定されているのだろうかと思います。このマッチングを扱うSpringコンポーネントはorg.springframework.util.AntPathMatcherです。何か不足している場合に備えて、そのjavadocを読んでください。

それ以外の場合は、urlマッピングのハンドラをdefaultHandlerとして設定してください。他のすべてが正しく動作することを確認して、問題をパスマッチングに絞り込むことができます。

関連する問題