微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SpringMVC Controller总结

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] 举报,一经查实,本站将立刻删除。

相关推荐