0

DispatcherServlet私は次のようにマッピングしました

<servlet>
    <servlet-name>ems</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>ems</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping>

したがって、URL に従って、すべてのリクエストを処理します。しかし、このようにViewResolverをマッピングすると

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>      
        <property name="prefix" value="/WEB-INF/jsps/"/>
        <property name="suffix" value=".jsp"></property>
    </bean>

コントローラーはビュー名として「ホーム」を返します。それから私は得ています

[PageNotFound] No mapping found for HTTP request with URI [/ems/WEB-INF/jsps/home.jsp] in DispatcherServlet with name 'ems'

RequestDispacher を使用するこの InternalResourceViewResolver として、別のリクエストになり、そのリクエストが再び処理さDispatcherServletれます。

この問題を解決するにはどうすればよいですか? を使用する場合、プロジェクト構造を定義する最良の方法は何ですか<url-pattern>/*</url-pattern>。ばかげた質問かもしれませんが、私は<url-pattern>/*</url-pattern>.

4

1 に答える 1

1

URL マッピングに「/*」を使用するということは、そのアプリケーションに送信されるすべてのリクエストが絶対に を通過する必要があることを意味するDispatcherServletため、それらすべてのマッピングが必要になります。

それが受け入れられない場合は、 を通過するサブセットを作成しDispatcherSerlet、残りを HTTP サーバーで処理する方法を見つけてください。

于 2012-07-18T12:00:40.150 に答える