热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SpringMVC配置注解的映射器、适配器(重点)

开发中实际用到的方式,是配置注解的映射器适配器。配置mvc:annotation-driven元素在3.1之后的注解的处理器映射器、适配器添加了很多的优化以及参

开发中实际用到的方式,是配置注解的映射器适配器。

>配置 mvc:annotation-driven元素

在3.1之后的注解的处理器映射器、适配器添加了很多的优化以及参数设置,所以在开发时,推荐使用3.1之后的版本。 

在SpringMVC中提供了一个mvc:annotation-driven元素,用于简化映射器、适配器在springmvc.xml文件中的配置。不仅可以替代上面两行的配置,而且mvc:annotation-driven的驱动类还默认加载了多个参数绑定的方法,比如json转换解析器就默认加载。所以开发时推荐使用该方式。如下所示:

>注解开发handler

加载该Handler可以使用Spring的批量加载扫描的方式,如下所示:

小结:

处理器映射器:

非注解的处理器映射器(了解)

注解的处理器映射器(掌握)

对标记@Controller注解的类,Spring容器自动加载该Bean并管理,对于该Bean中的使用@RequestMapping注解进行修饰的方法进行映射。在@RequestMapping里边定义映射的url路径。使用注解的映射器不需要在xml中配置url和Handler之间的映射关系。

处理器适配器:

非注解的处理器适配(了解)

注解的处理器适配器(掌握)

注解的适配器与注解的映射器是配对使用,也就是说注解的适配器不能使用非注解映射进行映射。

>注解配置demo

Spring-mvc配置文件:



>Handler编写:

package com.langsin.action;import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.springframework.web.HttpRequestHandler;import com.langsin.pojo.Book;public class BookListAction implements HttpRequestHandler {&#64;Overridepublic void handleRequest(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 这里如果去数据库查&#xff0c;需要整合MyBatis&#xff0c;先伪造一点数据List booklist&#61;new ArrayList<>();ServletContext application&#61;req.getServletContext();String webPath&#61;application.getRealPath("/")&#43;"WEB-INF/datas/book.txt";BufferedReader reader&#61;new BufferedReader(new FileReader(webPath));String line&#61;null;while((line&#61;reader.readLine())!&#61;null){String[] datas&#61;line.split(",");Book book &#61;new Book(Integer.parseInt(datas[0]),datas[1],Double.parseDouble(datas[2]));booklist.add(book);}reader.close();req.setAttribute("booklist", booklist);//请求转发req.getRequestDispatcher("/WEB-INF/jsp/book_list.jsp").forward(req, resp);}}

>jsp页面

<%&#64; page language&#61;"java" contentType&#61;"text/html; charset&#61;UTF-8"pageEncoding&#61;"UTF-8"%>
<%&#64; taglib prefix&#61;"c" uri&#61;"http://java.sun.com/jsp/jstl/core"%>












书籍编号书名作者
${book.bookId}${book.bookName}${book.price}


测试结果&#xff1a;


推荐阅读
  • Android系统移植与调试之如何修改Android设备状态条上音量加减键在横竖屏切换的时候的显示于隐藏
    本文介绍了如何修改Android设备状态条上音量加减键在横竖屏切换时的显示与隐藏。通过修改系统文件system_bar.xml实现了该功能,并分享了解决思路和经验。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • 本文讨论了如何使用Web.Config进行自定义配置节的配置转换。作者提到,他将msbuild设置为详细模式,但转换却忽略了带有替换转换的自定义部分的存在。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • 本文介绍了Android中的assets目录和raw目录的共同点和区别,包括获取资源的方法、目录结构的限制以及列出资源的能力。同时,还解释了raw目录中资源文件生成的ID,并说明了这些目录的使用方法。 ... [详细]
author-avatar
行者
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有