我想在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)
怎么办?
答案 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; }