2011-02-11 12 views

答えて

1

「web.xml」ファイルに<servlet-mapping>要素について話しているとします。

答えは同じ<servlet>要素に対して異なるパターンの2つの<servlet-mapping>要素を使用して(並べ替えて)行うことができます。

注意:これはJava EEサーブレット仕様の機能です。関連するリクエストのディスパッチは、Springがリクエストを見る前に行われます。

+0

私はそれを試みたが、私はこのエラーを得た:2011年2月10日11時43分45秒PM org.springframework.web.servlet.DispatcherServlet noHandlerFound WARNING:マッピングはURIとHTTPリクエストが見つかりません[/ myfirstgrid /invoices.xml]の名前が 'myfirstgrid'のDispatcherServlet – ktm5124

+2

2つのサーブレットを持つ方が良いでしょうか? – ktm5124

+0

@ ktm5124 - それは別の問題だと思います。 2つの ' '要素を持つ設定がうまくいかなかった場合、リクエストは' DispatcherServlet'にまったく届きませんでした。アプリケーションサーブレットの配線ファイル/注釈を見てください。 –

3

はい、非常にうまくいくでしょう。

<servlet-mapping> 
     <servlet-name>dispatcherServlet</servlet-name> 
     <url-pattern>*.htm</url-pattern> 
</servlet-mapping> 

<servlet-mapping> 
     <servlet-name>dispatcherServlet</servlet-name> 
     <url-pattern>*.xml</url-pattern> 
</servlet-mapping> 
7

同じマッピングで複数のurl-patternタグを追加するには、私はあなたを望むビューオブジェクト(.jspファイル)にそれらを解決し、あなたのコントローラを作りに関しては春3.0

<servlet-mapping> 
    <servlet-name>dispatcherServlet</servlet-name> 
    <url-pattern>/<url-pattern> 
    <url-pattern>*.htm</url-pattern> 
    <url-pattern>*.html</url-pattern> 
    <url-pattern>*.xml</url-pattern> 
</servlet-mapping> 

を使用してのために働きますコントローラークラスを拡張し、特定の命名規則に従うコントローラーを使用するか、注釈駆動コントローラーを使用して行うことができます。以下は、注釈駆動型コントローラの例です。

@Controller 
public class Controller { 

    @RequestMapping(value={"/","/index","/index.htm","index.html"}) 
    public ModelAndView indexHtml() { 
     // RETURN VIEW (JSP) FOR HTM FILE 
    } 

    @RequestMapping(value="/index.xml") 
    public ModelAndView indexXML() { 
     // RETURN VIEW (JSP) FOR XML FILE 
    } 
} 
+1

これを追加すると、イメージや「/webapp/icons/calender.jpg」という形式の他のアイコンにアクセスしているときに問題が発生する可能性があります。これは、これらのGETリクエストのすべてがコントローラに向けられるため、問題を引き起こします。 –

関連する問題