DispatcherServlet配置需要包含支持此处理程序的HandlerAdapter

时间:2014-08-29 13:28:14

标签: spring spring-mvc annotations

我想在Spring MVC中使用注释映射和xml映射。我的application-context.xml如下:

<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <props>
                <prop key="personal/account/history">accountHistoryController</prop>
            </props>
        </property>
    </bean>

    <bean id="accountHistoryController" class="com.fg.banking.ib.controller.AccountHistoryController" />

    <bean
        class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>
    <context:annotation-config />
    <mvc:annotation-driven />
    <context:component-scan base-package="com.fg.banking.ib.controller, com.fg.banking.ib.helper, com.fg.banking.corporate.controller" />

当我尝试访问该网址时出现以下错误。我已经配置了SimpleControllerHandlerAdapter,如上所述。

javax.servlet.ServletException: No adapter for handler 
[com.fg.banking.ib.controller.AccountHistoryController@218531e6]: The DispatcherServlet configuration needs to include a HandlerAdapter that supports this handler
org.springframework.web.servlet.DispatcherServlet.getHandlerAdapter(DispatcherServlet.java:1128)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:903)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827)

怎么办?

5 个答案:

答案 0 :(得分:6)

当你定义了restController但忘记定义requestMapping时也会出现这个错误。

base64

答案 1 :(得分:4)

我解决了这个问题。我忘了在控制器类中添加@Controller注释。我们可以在应用程序中一起使用这两种方法(注释映射和XML映射)。

答案 2 :(得分:1)

确保您已在控制器类中实施Controller并覆盖了handleRequest方法。

答案 3 :(得分:1)

尝试将以下内容添加为处理程序映射器(为我工作):

(z.*f)(std::forward<Args>(args)...)

答案 4 :(得分:0)

在这里,我们的控制器类应该扩展

import org.springframework.web.servlet.mvc.AbstractController;

public class AppController extends AbstractController{ }

在这里,我们需要将抽象方法实现为:

protected modelandview handleRequestInternal(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception { return null; }