vue和java bean_Java:JavaBean和BeanUtils
本文内容:
什么是JavaBean
JavaBean的使用
BeanUitls
利用DBUtils从数据库中自动加载数据到javabean对象中
首发日期:2018-07-21
什么是JavaBean
JavaBean是一种遵循开发规范的一种类。在JavaWeb开发中,经常用来存储实体信息,比如用户实体信息,实体信息不应该是散乱的,它应该是一个整体(就好像从数据库取出一个用户的年龄,id,手机等数据,这些数据应该归属于一个对象,而不应该用某个单纯变量来存储),所以才需要javabean。而为了规范开发,以及规范使用规则,所以需要按照一定规则来定义JavaBean。
只有符合以下规则的才是一个javabean:
必须要有一个无参构造函数【一些地方的javabean的使用需要利用反射,所以需要无参构造函数】
所有属性必须私有化【私有规则】
私有化的属性必须提供public类型的getter、setter方法,对于boolean类型的可以使用isXxx来代替。【getXxx()和setXxx()中的属性名首字母要大写(这是一种规则,不然的话,一些例如jsp中的使用“对象.属性名”将无法获取,因为调用的是对应的getter函数)】
JavaBean的使用
JavaBean的定义:
在以前,因为jsp中存在标签可以直接创建一个javabean对象,所以以前也会这样使用。但由于开发规范化【页面和功能相分离】和技术更新,已经逐渐少使用这个方法。不过这里还是演示一下
jsp中的用法:
创建对象:
【scope是指这个对象放到哪里去】
赋值对象:
获取:
【由于jsp有很多获取对象的属性方法,所以上面仅仅是指能直接创建对象的用法】
现在一般都是直接封装数据后直接传给jsp使用,所以jsp中处理的就是取值问题而已。如何封装才是servlet的问题(这里以基础的servlet为例)。
Servlet中的用法:
在servlet中封装信息:
在jsp中获取:
BeanUitls
BeanUtils是Apache开发的一种工具。
BeanUtils可以帮助我们把属性封装到javabean对象的对应属性中,比如可以把提交的表单数据封装到一个实体对象中。
封装时要求参数名称和javabean的属性名相同
使用:
1.导入必须包:主要是logging包和beanutils包
commons‐beanutils‐1.9.3.jar 【工具核心包 】
commons‐logging‐1.2.jar 【日志记录包 】
commons‐collections‐3.2.2.jar 【增强的集合包】
2.把包右键build path–>add to build path
3.调用函数:
根据属性名手动赋值:这种方式与普通的一个个set没什么区别,少用为妙
自动对应赋值:【下面给的map是表单提交的,但其他的map也是可以的,只要key与属性名相同】
数据转换问题:
如上所示,当使用自动赋值时,BeanUtils会帮助我们把值赋给bean,不过你可能没留意的是,提交上来的age是字符串的,但还是成功赋值给bean中的int类型的age了。这是因为BeanUtils有基本类型转换机制,String之类的可以转成基本数据类型。
但非基本数据类型之间是没有默认转换机制的,所以需要你自己去定义。当然BeanUtils也给了我们不少可以用来转换的转换器。下面以自定义的时间转换器String转Date为例,表单提交的日期是字符串的:
1.定义转换器类(实现Converter),也可以用匿名实现类来定义
2.注册转换器:ConvertUtils.register(转换器对象,类型.class)【注意不要导错类型】
其他有用的功能:
属性拷贝:把一个javaBean的属性拷贝到另一个javaBean对象中
BeanUtils.copyProperties(destinationObj,sourceObj)【第一个参数是目的地,第二个是拷贝源;如果第二个参数是map类型的,那么与populate功能类似;两个参数中间还可以提供一个String类型的参数,代表只复制某一个参数】
获取指定属性:BeanUtils.getProperty(bean,name)【如果指定的属性不存在,则会抛出异常】
补充:
BeanUtils除了赋值这个大功能外,还有不少小功能,但可能比较少有,如果你想要了解更多可以自己去看一下它有什么函数,可以根据函数名和参数类型来揣测函数的功能。
从数据库中自动加载数据到javabean中
可以参考我的另外一篇博文””中的DBUtils的使用来了解jdbc中是如何从数据库中自动加载数据到javabean中
作者:人道浮沉
vue和java bean_Java:JavaBean和BeanUtils相关推荐
- 【Vue】Java后端程序员也必须掌握的前端框架(下)
Vue基础 前言 十一.自定义事件内容分发 十二.vue-cli 1.安装 vue-cli 2.第一个 vue-cli 应用程序 3.Vue-cli目录结构 十三.Vue的Webpack 十四.vue ...
- Java Jaxb JavaBean与XML互转
1.Jaxb - Java Arcitecture for XML Binding 是业界的一个标准,是一项能够依据XML Schema产生Java类的技术. Jaxb2.0是Jdk1.6的组成部分. ...
- Java Web——JavaBean简介
基本概念 JavaBean: JavaBean是一种可重用的Java组件,它可以被Applet.Servlet.SP等Java应用程序调用.也可以可视化地被Java开发工具使用.它包含属性(Prope ...
- vue.js java php_准吗?Java程序员喜欢AngularJS,PHP程序员喜欢Vue.js!
编程语言与框架或者库之间有联系是很正常的事情,如果我们告诉你,使用某一种编程语言或技术的开发人员可能更喜欢某个框架,你会作何反应呢?Stack Overflow根据网站内最常访问的标签将开发人员分为多 ...
- 前后端分离工程实现 (VUE、JAVA)、附全部源码
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. 整个工程基本情况简述: 前端工程语言:vue (node.js) 后端工程语言:java (s ...
- 前端vue后端java,Vue调用后端java接口的实例代码_亦心_前端开发者
前段时间 做了个学校的春萌项目,其中用到 先上后端接口代码: package controller; import net.sf.json.JSONObject; import util.DBUtil ...
- vue.js java php_听说Java程序员喜欢AngularJS,PHP程序员喜欢Vue.js
编程语言与框架或者库之间有联系是很正常的事情,如果合肥达内告诉你,使用某一种编程语言或技术的开发人员可能更喜欢某个框架,你会作何反应呢?Stack Overflow根据网站内最常访问的标签将开发人员分 ...
- 把javabean复制到另一个javabean 使用BeanUtils.copyProperties(a,b) 复制
该方法对于两种不同的jar包有两种不同的意义 ,a,b通常是两个结构相似的javabean,注意:a,b里的定义类型名称必须一致才能复制 引用的是org.springframework.beans 则 ...
- vue和Java做数据交互_基于vue和springmvc前后端分离,json类接口调用介绍
基于vue和springmvc前后端分离,json类接口调用介绍 版本要求:spring-3.2.9.RELEASE.vue-2.9.2.axios-0.17.1,其中axios作为http clie ...
最新文章
- linux下查找网口_Linux查看网络端口
- OpenCV语义细分深度学习网络的实例(附完整代码)
- 运用《深入理解Java虚拟机》书中知识解决实际问题
- 【Python3 SelectKBest 调用personer出现的错误】
- Unity3D学习笔记之五为Prefab添加材质
- 最大堆和最小堆和平衡二叉树_最小堆二叉树
- PHP常用设计模式汇总
- 数据结构课程设计c语言-校园导游系统
- C语言中计算字符串长度的函数
- 从mysql学起_MySQL学习从这里出发!
- xml与map的相互转换
- 化工行业危化品实时监控/厂区监控解决方案:EasyGBS如何保障危化品安全生产?
- 洛谷P5594-【XR-4】模拟赛(模拟)
- Android11以上版本使用高德定位,定位成功,卫星数一直为0
- H5调用移动端手机摄像头
- java list 随机获取n个_java – 从列表中取n个随机元素?
- C# 有符号整数 无符号整数
- Vue学习(二)动态绑定与事件监听
- 锐龙R7 PRO 6860Z怎么样 相当于什么水平级别
- matlab社会统计学,浅谈MATLAB在统计学实验教学中的应用
热门文章
- 强烈的打击感jinbiguandan
- 飞鸽传书绿色版 部分数据库被陆续公开了
- CYQ.Data 轻量数据层之路
- 水滴石穿C语言之typedef的问题
- 风生水起:Linux的突破口在中国?
- 认识计算机硬件实验项目,实验1 认识计算机的硬件与硬件组装
- 导师推荐 | 第 4 期临床基因组家系分析,同时解决科研和临床问题
- 例7.8 分析下列程序的输出结果。《计算机等级考试二级C++语言》
- 农产品加工进销存单_农产品进销存ERP—物资的内部腾挪转换也是交易的一种形式...
- java rtmp推流_rtmp推流直播流程