2012-05-15 2 views
0

Я использую SpringSource Tool Suite, я создал проект Spring MVC из шаблона, и мне трудно понять, почему, когда я нажимаю «запускать как ...» в проект, он работает нормально, но когда я нажимаю его в файле home.jsp внутри каталога WEB-INF/views, я получаю ошибку 404, из-за этого я также не вижу другого jsp. Это нормальное поведение? Если да, можете ли вы объяснить или указать мне на объяснение?Ошибка 404 в Spring MVC с шаблоном STS по умолчанию

Это то, что я получаю в консоли.

15/05/2012 02:43:37 PM com.springsource.tcserver.security.PropertyDecoder <init> 
INFO: tc Runtime property decoder using memory-based key 
15/05/2012 02:43:37 PM com.springsource.tcserver.security.PropertyDecoder <init> 
INFO: tcServer Runtime property decoder has been initialized in 181 ms 
15/05/2012 02:43:37 PM org.apache.coyote.AbstractProtocol init 
INFO: Initializing ProtocolHandler ["http-bio-1234"] 
15/05/2012 02:43:38 PM com.springsource.tcserver.serviceability.rmi.JmxSocketListener init 
INFO: Started up JMX registry on 127.0.0.1:6969 in 75 ms 
15/05/2012 02:43:38 PM org.apache.catalina.startup.Catalina load 
INFO: Initialization processed in 651 ms 
15/05/2012 02:43:38 PM org.apache.catalina.core.StandardService startInternal 
INFO: Arrancando servicio Catalina 
15/05/2012 02:43:38 PM org.apache.catalina.core.StandardEngine startInternal 
INFO: Starting Servlet Engine: VMware vFabric tc Runtime 2.6.4.RELEASE/7.0.25.B.RELEASE 
15/05/2012 02:43:38 PM org.apache.catalina.startup.HostConfig deployDescriptor 
INFO: Desplieque del descriptor de configuración C:\springsource32\vfabric-tc-server-developer-2.6.4.RELEASE\spring-insight-instance\conf\Catalina\localhost\HelloWorld.xml 
15/05/2012 02:43:38 PM org.apache.catalina.startup.SetContextPropertiesRule begin 
ADVERTENCIA: [SetContextPropertiesRule]{Context} Setting property 'source' to 'org.eclipse.jst.jee.server:HelloWorld' did not find a matching property. 
15/05/2012 02:43:38 PM com.springsource.insight.collection.tcserver.ltw.TomcatWeavingInsightClassLoader start 
INFO: Context [localhost|HelloWorld] will not be woven 
15/05/2012 02:43:39 PM org.apache.catalina.core.ApplicationContext log 
INFO: Initializing Spring root WebApplicationContext 
INFO : org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization started 
INFO : org.springframework.web.context.support.XmlWebApplicationContext - Refreshing Root WebApplicationContext: startup date [Tue May 15 14:43:39 MDT 2012]; root of context hierarchy 
INFO : org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from ServletContext resource [/WEB-INF/spring/root-context.xml] 
INFO : org.springframework.beans.factory.support.DefaultListableBeanFactory - Pre-instantiating singletons in org.s[email protected]a29c6e: defining beans []; root of factory hierarchy 
INFO : org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 596 ms 
15/05/2012 02:43:39 PM org.apache.catalina.core.ApplicationContext log 
INFO: Initializing Spring FrameworkServlet 'appServlet' 
INFO : org.springframework.web.servlet.DispatcherServlet - FrameworkServlet 'appServlet': initialization started 
INFO : org.springframework.web.context.support.XmlWebApplicationContext - Refreshing WebApplicationContext for namespace 'appServlet-servlet': startup date [Tue May 15 14:43:39 MDT 2012]; parent: Root WebApplicationContext 
INFO : org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from ServletContext resource [/WEB-INF/spring/appServlet/servlet-context.xml] 
INFO : org.springframework.context.annotation.ClassPathBeanDefinitionScanner - JSR-330 'javax.inject.Named' annotation found and supported for component scanning 
INFO : org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor - JSR-330 'javax.inject.Inject' annotation found and supported for autowiring 
INFO : org.springframework.beans.factory.support.DefaultListableBeanFactory - Pre-instantiating singletons in org.s[email protected]9b2a51: defining beans [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping#0,org.springframework.format.support.FormattingConversionServiceFactoryBean#0,org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter#0,org.springframework.web.servlet.handler.MappedInterceptor#0,org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver#0,org.springframework.web.servlet.mvc.annotation.ResponseStatusExceptionResolver#0,org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver#0,org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping,org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter,org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter,org.springframework.web.servlet.resource.ResourceHttpRequestHandler#0,org.springframework.web.servlet.handler.SimpleUrlHandlerMapping#0,org.springframework.web.servlet.view.InternalResourceViewResolver#0,trampsController,homeController,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.ConfigurationClassPostProcessor$ImportAwareBeanPostProcessor#0]; parent: org.s[email protected]a29c6e 
INFO : org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped "{[/tramps],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.String com.hanzellegarda.HelloWorld.controllers.TrampsController.list(org.springframework.ui.Model) 
INFO : org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped "{[/],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.String com.hanzellegarda.HelloWorld.HomeController.home(java.util.Locale,org.springframework.ui.Model) 
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 802 ms 
15/05/2012 02:43:40 PM org.apache.catalina.startup.HostConfig deployDescriptor 
INFO: Desplieque del descriptor de configuración C:\springsource32\vfabric-tc-server-developer-2.6.4.RELEASE\spring-insight-instance\conf\Catalina\localhost\insight.xml 
15/05/2012 02:43:40 PM com.springsource.insight.collection.tcserver.ltw.TomcatWeavingInsightClassLoader start 
INFO: Context [localhost|insight] will not be woven 
15/05/2012 02:43:40 PM org.apache.catalina.core.ApplicationContext log 
INFO: Initializing Spring root WebApplicationContext 
15/05/2012 02:43:56 PM org.apache.catalina.core.ApplicationContext log 
INFO: Initializing Spring FrameworkServlet 'Spring MVC Dispatcher Servlet' 
15/05/2012 02:44:00 PM org.apache.catalina.startup.HostConfig deployDirectory 
INFO: Despliegue del directorio C:\springsource32\vfabric-tc-server-developer-2.6.4.RELEASE\spring-insight-instance\webapps\manager de la aplicación web 
15/05/2012 02:44:00 PM com.springsource.insight.collection.tcserver.ltw.TomcatWeavingInsightClassLoader start 
INFO: Context [localhost|manager] will not be woven 
15/05/2012 02:44:01 PM org.apache.catalina.startup.HostConfig deployDirectory 
INFO: Despliegue del directorio C:\springsource32\vfabric-tc-server-developer-2.6.4.RELEASE\spring-insight-instance\webapps\ROOT de la aplicación web 
15/05/2012 02:44:01 PM com.springsource.insight.collection.tcserver.ltw.TomcatWeavingInsightClassLoader start 
INFO: Context [localhost|ROOT] will not be woven 
15/05/2012 02:44:01 PM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["http-bio-1234"] 
15/05/2012 02:44:01 PM org.apache.catalina.startup.Catalina start 
INFO: Server startup in 23080 ms 
+0

Получаете ли вы какие-либо сообщения в консоли? –

+0

В вашей консоли нет ошибок. Можете ли вы показать некоторые из своих проблемных кодов, чтобы я мог лучше понять вашу проблему и решить эту проблему?:) –

ответ

3

В общем, статические файлы, такие как home.jsp, отображаются с помощью контроллера.

В этом случае ваши контроллеров быть аннотация привода, обозначенного элемент

<annotation-driven /> 

XML находится в WEB-INF/весна/appServlet/сервлет-context.xml (если вы не сдвинулись вокруг, я только что сделал образец проекта mvc из шаблона)

Это означает, что Spring сканирует ваши java-файлы для объектов @Controller, которые он затем примет и привяжет к представлениям.

Причина, по которой home.jsp не отображается, заключается в том, что она отображается через HomeController, расположенную в базовом пакете.

Вы должны заметить, есть аннотация со следующей подписью

@RequestMapping(value = "/", method = RequestMethod.GET) 

Это связывание корневого контекста приложения (независимо от имени проекта), к методу ниже этой аннотации, которая должна быть (т.е. локальный: 8080/your_app /)

public String home(Locale locale, Model model) 

то, что вы должны обратить внимание, это тип возвращаемых строк для этого метода контроллера. Это означает имя представления, которое будет отображаться после завершения метода. В этом случае он должен быть:

return "home"; 

Следующая часть может быть немного запутанным, но должно иметь смысл через некоторое время. «Дом» привязан к ViewResolver, если вернуться к вашему сервлет-context.xml, должен быть боб с классом

org.springframework.web.servlet.view.InternalResourceViewResolver 

Примечание свойства создаются:

<beans:property name="prefix" value="/WEB-INF/views/" /> 
<beans:property name="suffix" value=".jsp" /> 

Что это означает, что view resolver начнет искать «домашний» файл вида в/WEB-INF/views/и добавить на .jsp до конца дома. Первый матч он находит, будет возвращен, и если вы посмотрите на структуру каталогов, есть файл JSP находится в пределах:

/WEB-INF/views/home.jsp

Надежда этот ответ поможет вам немного, не стесняйтесь комментировать.

+0

Это именно то, что мне нужно, это очень помогает мне, спасибо вам большое. – Hanzel

+1

Можете ли вы принять ответ, пожалуйста? – dardo

+0

Да, помогите собратью укладчика и примите! – aglassman

Смежные вопросы