Spring MVC中没有找到处理程序(Spring MVC No handler found)

2019-10-29 12:33发布

我是新手,Spring MVC和试图建立一个非常基本的web应用程序登录。 我得到下面的错误,同时运行的项目。 我已经试过几乎所有的东西,并且自过去两周内无法修复这个错误。 请有人可以帮助我。

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>

frontcontrol-servlet.xml中

<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>

Controller类

@Controller

public class Firstcontrol {

@RequestMapping(value="/")
public ModelAndView invokeme(Model m)
{

ModelAndView mav=new ModelAndView();
mav.setViewName("result");
System.out.println("In method");
return mav;
}

@RequestMapping(value="/submit" ,method=RequestMethod.GET)
public String submit(Model m)
{
System.out.println("In submitmethod");
return "submit";
}
}

Answer 1:

既然你映射你的DispatcherServlet以'/'尝试添加<mvc:default-servlet-handler/>spring-servlet.xml



Answer 2:

我看到了同样的错误,原来,你需要单独启用MVC注解

<mvc:annotation-driven/>

此外

<context:Annotation-config/>


Answer 3:

<context:component-scan base-package="your base packege " />

您应该检查在春季XML配置以下部分。 也许你从什么地方抄了一遍,忘了让你的包名。 Spring将无法扫描包,如果这样,最终显示此错误。



Answer 4:

在web.xml文件中的配置文件(弹簧servler.xml)应被指定到由调度员的servlet使用,因为你不使用常规名称,它是[servlet的名称] -context.xml。

由于春季找不到配置文件的分发程序Servlet的视图解析器永远不会注册。 我认为“弹簧servler.xml位于内WEB-INF在我的示例文件夹,所以你可能需要调整。

还要注意我换了servlet映射到/如果你需要解决静态资源,因为这有助于/充当所有,而不是通过映射调度一切捕捞。

<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>

您也可以尝试使用普通视图解析器,如果你不使用JSTL。

更换JSTL视图解析器:

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

附:

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

尝试返回一个String从你的控制器指定视图名称:

 @RequestMapping(value="/")
 public String loginpage(Model model)
{  
   Employee emp=new Employee();
    ModelAndView mav=new ModelAndView();
    model.addObject("emp", emp);
    return "loginnn";
}


Answer 5:

@sanjay和@Will基林都是对的。 它是需要使用<mvc:default-servlet-handler/>作为最后的处理程序),使能<mvc:annotation-driven/><context:Annotation-config/>



文章来源: Spring MVC No handler found