Je souhaitais utiliser le mappage d'annotation et le mappage xml dans Spring MVC. Mon application-context.xml
comme suit:
<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" />
Je reçois le message d'erreur suivant lorsque j'essaie d'accéder à l'URL. J'ai configuré SimpleControllerHandlerAdapter comme ci-dessus.
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)
Que faire?
J'ai résolu le problème. J'ai oublié d'ajouter l'annotation @Controller
dans la classe du contrôleur. Nous pouvons donc utiliser les deux méthodes (mappage d'annotation et mappage XML) ensemble dans une application.
Assurez-vous que vous avez implémenté Controller
dans vos classes de contrôleur et surchargé la méthode handleRequest
.
Essayez d’ajouter ce qui suit en tant que mappeur de gestionnaires (a travaillé pour moi):
<bean id="HandlerMapping" class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>