使用注解的方式进行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、配置注解的处理器适配器

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

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

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

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

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

6、Handler的编写

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

//使用Controller注解,标明本类是一个Handler
@Controller
public class TestController { //使用@RequestMapping进行url映射
@RequestMapping("/queryItems")
public ModelAndView queryItems() throws Exception {
//调用service中的方法去数据库查询数据,这里采用静态数据进行模拟
List<Items> itemsList = new ArrayList<>();
//静态模拟数据
Items items1 = new Items();
items1.setId(1);
items1.setName("笔记本电脑");
items1.setPrice(5000.0f); Items items2 = new Items();
items2.setId(2);
items2.setName("鼠标");
items2.setPrice(50.0f); itemsList.add(items1);
itemsList.add(items2); //创建ModelAndView对象
ModelAndView modelAndView = new ModelAndView();
//填充model
modelAndView.addObject("itemsList",itemsList);
//填充view
modelAndView.setViewName("/page/itemlist.jsp");
return modelAndView;
} }

7、配置Handler

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

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

8、测试结果

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

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

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

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

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

//没有配置前缀和后缀
modelAndView.setViewName("/page/itemlist.jsp");
//配置了前缀和后缀
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. Android-原生对话框

    package liudeli.ui.all; import android.app.Activity; import android.app.AlertDialog; import android. ...

  2. Window 服务启动出错 14001

    在安装windows服务时,没有异常情况,但是在启动的过程中出现 14001错误. 错误 14001 应用程序无法启动 因为应用程序的并行配置不正确 有关详细信息 请参阅应用程序事件日志 或使用命令行 ...

  3. pageadmin网站制作 如何修改和管理网站模板

    在使用pageadmin CMS 的同时,遇到问题可以参考官网帮助中心.1.网站模板目录地址/templates目录, 2.点击展开后,每个目录就是一个网站模板, 前端设计师制作的新版本都可以放到这个 ...

  4. Windows server 2008 R2安装MySQL 32位ODBC驱动!

    在Windows server 2008 R2安装MySQL 32位ODBC驱动,总是提示错误,我安装了DOTNET4的库,同时安装了VC2008.VC2012.VC2013的支持库,怎么还不行呢?M ...

  5. Android中Application类的使用

    在最近的Android项目中,有些代码需要从程序的运行周期开始一直到运行周期结束:比如说本地数据库的初始化,从服务器获取数据等:可以说Application对象的生命周期是整个程序中最长的,它的生命周 ...

  6. Postman使用手册3——环境变量

    一.环境变量 当使用API的时候,你可能经常需要使用不同的设置.环境设置可以让你使用变量自定义request.这个方法可以让你轻松的在不同的设置之间改变而不用改变你的request.你不需要担心要记住 ...

  7. HEOI2019游记(退役记)

    少了回程铁路相关信息,有空补 AFO 辣鸡蒟蒻ghj1222顺利地退役了 由于没带手机拍照片,本次坐动车不写运转记录,下次去CTS/APIO应该是坐普速车,应该能带手机拍照,应该会写运转记录 Day ...

  8. webpack构建多页面react项目(webpack+typescript+react)

    目录介绍 src:里面的每个文件夹就是一个页面,页面开发相关的组件.图片和样式文件就存放在对应的文件夹下. tpl:里面放置模板文件,当webpack打包时为html-webpack-plugin插件 ...

  9. leetcode-796-Rotate String

    题目描述: We are given two strings, A and B. A shift on A consists of taking string A and moving the lef ...

  10. SQL数据库Truncate的相关用法

    数据库中 Truncate的用法:这个是删除表中的所有数据语法是 Truncate Table tablename他与delete的区别在于1 delete 可以有条件的删除 而truncate 是删 ...