私はSpring MVCの世界でかなりのニュースであり、あなたに答えがあります.
STS\Eclipse の関連するテンプレート プロジェクトによって、新しい Spring MVC プロジェクトを作成しました。
わかりました、単純な事前構成された Spring MVC プロジェクトが作成されます。
このプロジェクトは、 servlet-context.xmlファイル内で次のタグを使用して、注釈駆動型になるように構成されています。
<annotation-driven />
このタグは、メッセージ変換、JSR 303 検証などの追加サービスを提供するヘルパー タグであり、これは厳密には必要ないため、単純なコントローラーが機能します (クラスに @Controller として注釈を付け、コンポーネントによってスキャンするパッケージを指定するだけです)。 -タグをスキャン)
わかりました...これは私には明らかです...しかし、STS\Eclipseによって作成された例では、servlet-context.xmlファイルから注釈駆動型タグを削除すると、適切に機能するために次のものも削除する必要があることに気付きました同じ構成ファイルからのタグ:
<resources mapping="/resources/**" location="/resources/" />
アノテーション駆動タグを削除しても、以前のリソース マッピング タグを削除しない場合、アプリケーションを起動すると、これは実行されません。これは実行されず、HTTP ステータス 404 というエラーが発生します。私が持っているトレース:
INFO : org.springframework.web.servlet.handler.SimpleUrlHandlerMapping - Mapped URL path [/resources/**] onto handler 'org.springframework.web.servlet.resource.ResourceHttpRequestHandler#0'
INFO : org.springframework.web.servlet.DispatcherServlet - FrameworkServlet 'appServlet': initialization completed in 1104 ms
dic 03, 2012 12:57:16 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /home/andrea/SpringSource/vfabric-tc-server-developer-2.7.2.RELEASE/base-instance/webapps/ROOT
dic 03, 2012 12:57:16 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /home/andrea/SpringSource/vfabric-tc-server-developer-2.7.2.RELEASE/base-instance/webapps/manager
dic 03, 2012 12:57:16 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
dic 03, 2012 12:57:16 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 3144 ms
WARN : org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/maventestwebapp/] in DispatcherServlet with name 'appServlet'
しかし、以前のリソースマッピングタグも削除すると、プロジェクトはうまく実行されます...つまり、これが問題になるはずです...アノテーション駆動型のサポートが有効にされていないと、リソースマッピングは機能しないようです...
なんで?何が問題ですか?また、以前のリソース マッピング タグの正確な動作は何ですか?
どうもありがとう
アンドレア
これは私のservlet-context.xml設定ファイルのコードです:
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!-- Enables the Spring MVC @Controller programming model -->
<!-- <annotation-driven /> -->
<!-- DispatcherServlet Context: defines this servlet's request-processing infrastructure -->
<context:component-scan base-package="com.mycompany.maventestwebapp" />
<!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources directory -->
<resources mapping="/resources/**" location="/resources/" />
<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory -->
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value="/WEB-INF/views/" />
<beans:property name="suffix" value=".jsp" />
</beans:bean>