Java 未找到Spring MVC处理程序

Java 未找到Spring MVC处理程序,java,spring,spring-mvc,Java,Spring,Spring Mvc,我是SpringMVC的新手,正在尝试开发一个非常基本的登录webapp。我在运行项目时遇到以下错误。自从上两周以来,我几乎尝试了所有的方法,但无法修复这个错误。有人能帮我吗 May 21, 2013 2:37:12 PM org.springframework.web.servlet.DispatcherServlet noHandlerFound WARNING: No mapping found for HTTP request with URI [/SpringWeb/WEB-INF/j

我是SpringMVC的新手,正在尝试开发一个非常基本的登录webapp。我在运行项目时遇到以下错误。自从上两周以来,我几乎尝试了所有的方法,但无法修复这个错误。有人能帮我吗

May 21, 2013 2:37:12 PM org.springframework.web.servlet.DispatcherServlet noHandlerFound
WARNING: No mapping found for HTTP request with URI [/SpringWeb/WEB-INF/jsp/loginnn.jsp] in DispatcherServlet with name 'spring'
我的jsp页面位于WEB-INF/jsp下。正在调用控制器中的方法loginpage,但未呈现和解析视图名称。非常感谢你的帮助

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>testspring</display-name>
<servlet>
<servlet-name>frontcontrol</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>frontcontrol</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
<context:component-scan base-package ="com.shell.spring.testspringapp">
</context:component-scan>
<bean id ="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">

<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />      
</bean>

</beans>

在web.xml文件中,应该指定配置文件(spring servler.xml)供dispatcher servlet使用,因为您不使用常规名称,即[servlet name]-context.xml

由于Spring找不到dispatcher servlet的配置文件,因此从未注册viewresolver。在我的示例中,我假设'spring-servler.xml位于
WEB-INF
文件夹中,因此您可能需要进行调整

还请注意,我将servlet映射切换到了
/
,这有助于您解决静态资源问题,因为
/
充当了一个包罗万象的角色,而不是通过dispatcher映射所有内容

<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>WEB-INF/spring-servler.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

在web.xml文件中,应该指定配置文件(spring servler.xml)供dispatcher servlet使用,因为您不使用常规名称,即[servlet name]-context.xml

由于Spring找不到dispatcher servlet的配置文件,因此从未注册viewresolver。在我的示例中,我假设'spring-servler.xml位于
WEB-INF
文件夹中,因此您可能需要进行调整

还请注意,我将servlet映射切换到了
/
,这有助于您解决静态资源问题,因为
/
充当了一个包罗万象的角色,而不是通过dispatcher映射所有内容

<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>WEB-INF/spring-servler.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

既然您正在将DispatcherServlet映射到“/”,请尝试将
添加到
spring servlet.xml

既然您正在将DispatcherServlet映射到“/”,请尝试将
添加到
spring servlet.xml

我看到了相同的错误,结果是您需要单独启用MVC注释

<mvc:annotation-driven/>

除了

<context:Annotation-config/>

我看到了相同的错误,结果是您需要单独启用MVC注释

<mvc:annotation-driven/>

除了

<context:Annotation-config/>


@sanjay和@Will-Keeling都是对的。需要使用
(作为最后一个处理程序)并同时启用

@sanjay和@Will Keeling都是正确的。需要使用
(作为最后一个处理程序)并同时启用

您应该检查spring配置xml中的以下部分。也许你是从某个地方抄来的,忘了把它作为你的包名。Spring将无法扫描包,如果它这样做,并最终显示此错误


您应该检查spring配置xml中的以下部分。也许你是从某个地方抄来的,忘了把它作为你的包名。Spring将无法扫描包,如果它这样做,并最终显示此错误

嗨,凯文,很抱歉这是spring-servlet.xml上的一个输入错误。我刚刚编辑了我的帖子。正如您所建议的,我修改了web.xml和spring-servlet.xml,但仍然得到相同的错误。我尝试在loginpage方法中打印一些sysout。正在调用它,解决视图名称时出现问题。您好Kevin,我收到以下错误:2013年5月21日下午4:17:12 org.springframework.web.servlet.DispatcherServlet noHandlerFound警告:未找到URI为[/SpringWeb/login.html]的HTTP请求的映射在名为“spring”的DispatcherServlet中,当我将URL模式替换为/*时,我收到错误:2013年5月21日下午2:37:12 org.springframework.web.servlet.DispatcherServlet noHandlerFound警告:找不到具有URI的HTTP请求的映射[/SpringWeb/web-INF/jsp/loginnn.jsp]在名为“spring”的DispatcherServlet中,你好,凯文,进展不大。我已经创建了另一个基本的spring mvc应用程序。虽然没有错误报告,但它仍然显示HTTP 404错误页面。我刚刚发布了修改后的新代码,它呈现给我result.jsp页面,但单击submit会将我带到HTTP 404 errorHi Kevin,很抱歉这是spring-servlet.xml上的一个打字错误。我刚刚编辑了我的帖子。正如您所建议的,我修改了web.xml和spring-servlet.xml,但仍然得到相同的错误。我尝试在loginpage方法中打印一些sysout。正在调用它,解决视图名称时出现问题。您好Kevin,我收到以下错误:2013年5月21日下午4:17:12 org.springframework.web.servlet.DispatcherServlet noHandlerFound警告:未找到URI为[/SpringWeb/login.html]的HTTP请求的映射在名为“spring”的DispatcherServlet中,当我将URL模式替换为/*时,我收到错误:2013年5月21日下午2:37:12 org.springframework.web.servlet.DispatcherServlet noHandlerFound警告:找不到具有URI的HTTP请求的映射[/SpringWeb/web-INF/jsp/loginnn.jsp]在名为“spring”的DispatcherServlet中,你好,凯文,进展不大。我已经创建了另一个基本的spring mvc应用程序。虽然没有错误报告,但它仍然显示HTTP 404错误页面。我刚刚发布了修改后的新代码,它显示了result.jsp页面,但单击submit会显示HTTP 404错误
<context:Annotation-config/>