SpringMVC Controller总结
经过前面的学习,对 SpringMVC 已经有一定的了解了,其中执行的流程也算略知一二。在 SpringMVC 中,控制器 Controller 是实际执行业务的部分,如何让控制器生效就是 SpringMVC 的目标。本节用 SpringMVC-04-Controller 项目总结一下 Controller 的使用!
1. 控制器Controller
- 控制器复杂提供访问应用程序的行为,可以通过接口定义或注解定义两种方法实现。
- 控制器负责解析用户的请求并将其转换为一个模型。
- 在 Spring MVC 中一个控制器类可以包含多个方法(使用注解)。
- 在 Spring MVC 中,Controller 有多种配置方式。
2. 实现Controller接口
Controller 是一个接口,在 org.springframework.web.servlet.mvc
包下,接口中只有一个方法 handleRequest
@FunctionalInterface
public interface Controller {
@Nullable
ModelAndView handleRequest(HttpServletRequest var1, HttpServletResponse var2) throws Exception;
}
某个类实现 Controller 接口中的 handleRequest
方法后,这个类就是一个控制器了,可以处理传递到该控制器中的请求(用 handleRequest
方法)!
配置 web.xml,注册 dispatcherServlet
;配置 springmvc-servlet.xml,添加视图解析器(处理器注册器和处理器适配器都有默认配置的!)
<!--处理器映射器-->
<!--<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>-->
<!--处理器适配器-->
<!--<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>-->
<!-- 视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
id="internalResourceViewResolver">
<!-- 前缀 -->
<property name="prefix" value="/WEB-INF/jsp/" />
<!-- 后缀 -->
<property name="suffix" value=".jsp" />
</bean>
配置完成的情况下,想要增加一个控制器,只要创建一个控制器类实现 Controller 接口即可!
创建 ControllerTest1 类,保存模型数据并设置视图名字
public class ControllerTest1 implements Controller {
public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
//返回一个模型视图对象
ModelAndView mv = new ModelAndView();
mv.addobject("msg","Test1Controller");
mv.setViewName("test");
return mv;
}
}
由于用接口定义的方式实现,所以要把这个类注册到 Spring 中(这个 id 是要加斜杠的,找了好久的 BUG
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。