使用注解的方式进行Handler的开发

  注意:此处只介绍和方式一不同的地方

1、注解的处理器适配器

 在spring3.1之前使用org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter注解适配器。

 在spring3.1之后使用org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter注解适配器

2、注解的处理器映射器

 在spring3.1之前使用org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping注解映射器。

 在spring3.1之后使用org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping注解映射器。

3、配置注解的处理器适配器

  1. <!---第一种配置方式-->
  2. <!--配置注解的处理器适配器-->
  3. <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" />

4、配置注解的处理器映射器

  1. <!---第一种配置方式-->
  2. <!--配置注解的处理器映射器-->
  3. <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />

5、配置处理器适配器和映射器的另一种方式

  1. <!--第二种配置方式-->
  2. <!-- 使用 mvc:annotation-driven代替上边注解映射器和注解适配器配置
  3. mvc:annotation-driven默认加载很多的参数绑定方法,
  4. 比如json转换解析器就默认加载了,如果使用mvc:annotation-driven不用配置上边的RequestMappingHandlerMapping和RequestMappingHandlerAdapter
  5. 实际开发时使用mvc:annotation-driven
  6. -->
  7. <!--<mvc:annotation-driven></mvc:annotation-driven>-->

6、Handler的编写

 使用注解的映射器和注解的适配器。(注解的映射器和注解的适配器必须配对使用),在Handler文件中只要添加@Controller注解即可。

  1. //使用Controller注解,标明本类是一个Handler
  2. @Controller
  3. public class TestController {
  4. //使用@RequestMapping进行url映射
  5. @RequestMapping("/queryItems")
  6. public ModelAndView queryItems() throws Exception {
  7. //调用service中的方法去数据库查询数据,这里采用静态数据进行模拟
  8. List<Items> itemsList = new ArrayList<>();
  9. //静态模拟数据
  10. Items items1 = new Items();
  11. items1.setId(1);
  12. items1.setName("笔记本电脑");
  13. items1.setPrice(5000.0f);
  14. Items items2 = new Items();
  15. items2.setId(2);
  16. items2.setName("鼠标");
  17. items2.setPrice(50.0f);
  18. itemsList.add(items1);
  19. itemsList.add(items2);
  20. //创建ModelAndView对象
  21. ModelAndView modelAndView = new ModelAndView();
  22. //填充model
  23. modelAndView.addObject("itemsList",itemsList);
  24. //填充view
  25. modelAndView.setViewName("/page/itemlist.jsp");
  26. return modelAndView;
  27. }
  28. }

7、配置Handler

 此处使用组件扫描的方式配置Handler。

  1. <!--使用组件扫描的方式配置Handler-->
  2. <!-- 对于注解的Handler可以单个配置 实际开发中建议使用组件扫描-->
  3. <!-- <bean class="cn.itcast.ssm.controller.ItemsController3" /> -->
  4. <!-- 可以扫描controller、service、...
  5. 这里让扫描controller,指定controller的包
  6. -->
  7. <context:component-scan base-package="jack.controller" ></context:component-scan>

8、测试结果

 在浏览器访问如下url;http://localhost:8080/项目名称/queryItems.action

9、配置视图解析器的前缀和后缀

 通过配置视图解析器的前缀和后缀可以简化在Handler中view的书写。配置方式如下:

  1. <!--配置视图解析器,解析jsp页面,默认使用jstl标签-->
  2. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
  3. <!--配置视图解析器的前缀-->
  4. <property name="prefix" value="/page/"/>
  5. <!--配置视图解析器的后缀-->
  6. <property name="suffix" value=".jsp"/>
  7. </bean>

相应的,Handler中的view变为如下:

  1. //没有配置前缀和后缀
  2. modelAndView.setViewName("/page/itemlist.jsp");
  3. //配置了前缀和后缀
  4. modelAndView.setViewName("itemlist");

SpringMVC入门(二)的更多相关文章

  1. springMVC入门二

    一.准备工作 参考springMVC入门一,搭建maven项目如下: 前台结构如下: 项目介绍:使用springMVC实现前后台数据交互,例如controller返回json,页面传入pojo 二.具 ...

  2. SpringMVC入门二: 1规范结构, 2简单整合MyBatis

    昨天拿springMVC写的helloworld结构不好, 这次先调整一下体系结构 , 然后简单整合一下MyBatis spring的配置还是以注解为主, 不过MyBatis的映射文件什么的还是拿xm ...

  3. springMvc 入门二

    目的:请求参数接受,输出,常见的注解(在上一篇入门1基础上) 1:请求参数的绑定 1.1绑定的机制 表单中请求参数都是基于key=value的. SpringMVC绑定请求参数的过程是通过把表单提交请 ...

  4. SpringMVC入门二:SSM整合(spring+springmvc+mybatis)

    一.编程步骤 1.引入依赖 spring.springmvc.mybatis.mybatis-spring.mysql.druid.log4j.servlet-api.jstl.fastjson 2. ...

  5. SpringMvc入门二----HelloWorld

    1. 导入需要的架包: 2. 配置web.xml,添加Servlet <servlet> <servlet-name>springmvc</servlet-name> ...

  6. <SpringMvc>入门二 常用注解

    1.@RequestMapping @Target({ElementType.METHOD, ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME ...

  7. Spring+SpringMVC+MyBatis深入学习及搭建(十二)——SpringMVC入门程序(一)

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6999743.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十一)——S ...

  8. SpringMVC入门学习(二)

    SpringMVC入门学习(二) ssm框架 springMVC  在上一篇博客中,我简单介绍了一下SpringMVC的环境配置,和简单的使用,今天我们将进一步的学习下Springmvc的操作. mo ...

  9. SpringMVC.入门篇《二》form表单

    SpringMVC.入门篇<二>form表单 项目工程结构: 在<springmvc入门篇一.HelloWorld>基础上继续添加代码,新增:FormController.ja ...

  10. Java开发学习(二十三)----SpringMVC入门案例、工作流程解析及设置bean加载控制

    一.SpringMVC概述 SpringMVC是隶属于Spring框架的一部分,主要是用来进行Web开发,是对Servlet进行了封装.SpringMVC是处于Web层的框架,所以其主要的作用就是用来 ...

随机推荐

  1. ASP.NET mvc4 Controllder 同步还是异步

    从抽象类Controller 的定义可以看出他 同时实现了 IAsyncController, IController public abstract class Controller : Contr ...

  2. 7z文件格式及其源码的分析(三)

    上一篇在这里.  这是7z文件格式分析的第三篇, 相信有了前两篇的准备,你已经了解了7z源码的大致结构, 以及如何简单调试7z的源码了. 很多同学是不是迫不及待想要拔去7z的神秘外衣,看看究竟了. 好 ...

  3. hyper-v开发包之ddtkh

    ddtkh是微软开源社区的项目,实质是.net对象封装的一系列powershell命令,在结构上更直观更易用.它集成scvmm虚拟机管理.scom虚拟机资源监控和DPM数据保护等几种功能包.

  4. Open Interface Service WCF三种通信模式

    WCF三种通信模式 一.请求响应模式: 概念:客户端发送请求,一直等待服务端响应,在此期间处于等待(假死)状态:直到服务器响应,才能继续执行其他的操作: 即使返回值是void 也属于请求与答复模式. ...

  5. Android通知栏介绍与适配总结(上篇)

    此文已由作者黎星授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 由于历史原因,Android在发布之初对通知栏Notification的设计相当简单,而如今面对各式各样的通知 ...

  6. 爬虫开发.2urllib模块

    一.urllib库 概念:urllib是Python自带的一个用于爬虫的库,其主要作用就是可以通过代码模拟浏览器发送请求.其常被用到的子模块在Python3中的为urllib.request和urll ...

  7. 2.ECMAScript 5.0

    JS的引入方式 内接式 <script type="text/javascript"> </script> 外接式 <!--相当于引入了某个模块--& ...

  8. 深入了解java虚拟机(JVM) 第二章 内存区域---栈空间

    一.栈的含义 用于描述方法执行的动态内存模型,简单来说就是代码中的方法模块.主要用于局部变量表.栈的大小在编译器中就已经分配了空间,在进入一个方法时,这个方法需要栈帧分配多少内存是固定的,运行期间是不 ...

  9. maven(私库)上传jar包

    在实际开发过程中,我们经常会遇到需要引用的jar依赖,在我们公司的maven仓库不存在,这个时候我们就需要把jar上传上去,在项目中添加对应依赖就OK了. 步骤1:下载jar 在http://mvnr ...

  10. 本机安装mysql服务

    Windows 上安装 MySQL Windows 上安装 MySQL 相对来说会较为简单,你需要在 MySQL 下载中下载 Windows 版本的 MySQL 安装包. Download Link: ...