Java学习路线-52:JavaBean

简介: Java学习路线-52:JavaBean

第 7 章 : JavaBean

课时 24:JavaBean 规范

必须要有默认的构造器(无参)

必须要为成员提供 get/set 方法

只提供一个 get 也可以,称为只读属性

对于具有 get/set 方法的成员变量称之为属性

就算属性没有对应的成员变量,只有 get/set 方法也是可以的

属性的名称就是 get/set 方法去除 get/set 之后把首字母小写

课时 25 BeanUtils 的使用

commons-beanutils.jar

commons-logging.jar

配置 pom.xml

<dependency>
    <groupId>commons-beanutils</groupId>
    <artifactId>commons-beanutils</artifactId>
    <version>1.9.4</version>
</dependency>

<dependency>
    <groupId>commons-logging</groupId>
    <artifactId>commons-logging</artifactId>
    <version>1.2</version>
</dependency>
package com.pengshiyu.bean;


public class Person {
private String name;
private int age ;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

@Override
public String toString() {
return "Person{" +
"name='" + name + '\&#39;' +
", age=" + age +
'}';
}

}
import org.apache.commons.beanutils.BeanUtils;
import org.junit.Test;

public class TestPersonBean {
@Test
public void func1() throws Exception {
String className = "com.pengshiyu.bean.Person";
Class clazz = Class.forName(className);
Object person = clazz.newInstance();

// 设置属性
BeanUtils.setProperty(person, "name", "Tom");
BeanUtils.setProperty(person, "age", 23);

System.out.println(person);
// Person{name='Tom', age=23}

// 读取属性
String name = BeanUtils.getProperty(person, "name");
String age = BeanUtils.getProperty(person, "age");

System.out.println("name:" + name + " age: " + age);
// name:Tom age: 23
}
}
/**
* 把map 数据写入到bean中
* @throws Exception
*/
@Test
public void func2() throws Exception {
Map<String, String> map = new HashMap<String, String>();
map.put("name", "Tom");
map.put("age", "23");

Person person = new Person();

BeanUtils.populate(person, map);

System.out.println(person);
// Person{name='Tom', age=23}

}

简单封装

package util;

import org.apache.commons.beanutils.BeanUtils;

import java.util.Map;


public class CommonUtils {
public static <T> T toBean(Map map, Class<T> clazz) {
try {
// 创建指定类型的javabean对象
T instance = clazz.newInstance();
// 把数据封装到javabean中
BeanUtils.populate(instance, map);
// 返回javabean
return instance;
} catch (Exception e){
throw new RuntimeException(e);
}
}
}

使用

Map<String, String> map = new HashMap<String, String>();
map.put("name", "Tom");
map.put("age", "23");

Person person = CommonUtils.toBean(map, Person.class);

System.out.println(person);
// Person{name='Tom', age=23}

课时 26 JSP 中的 JavaBean 相关标签

相关标签

创建或查询 bean

<!-- 在page域中查找user1,不存在则创建 -->
<jsp:useBean id="user1" class="com.pengshiyu.User" scope="page" />

设置属性

<jsp:setProperty name="user1" property="username" value="Tom" />

获取属性

<jsp:getProperty name="user1" property="username" />
            </div>
目录
相关文章
高德地图目前是哪个集团下的公司?
其实在2014年02月,阿里巴巴就斥资11亿美元,完成对高德地图的全资收购,所以高德地图目前是属于阿里巴巴集团下的公司了。
4042 0
|
机器学习/深度学习 人工智能 自然语言处理
揭秘Google Gemini:AI界的多模态革命者与ChatGPT-4的较量
揭秘Google Gemini:AI界的多模态革命者与ChatGPT-4的较量
680 0
|
弹性计算 虚拟化 异构计算
2023阿里云GPU服务器租用价格表(包月/按小时/学生价)
2023阿里云GPU服务器租用价格表(包月/按小时/学生价)阿里云GPU服务器租用价格表包括包年包月价格、一个小时收费以及学生GPU服务器租用费用,阿里云GPU计算卡包括NVIDIA V100计算卡、T4计算卡、A10计算卡和A100计算卡,GPU云服务器gn6i可享受3折优惠,阿里云百科分享阿里云GPU服务器租用价格表、GPU一个小时多少钱以及学生GPU服务器收费价格表
1246 0
|
11月前
|
人工智能 数据可视化 数据库
低代码平台:技术复杂性的系统简化
低代码平台通过模块化和自动化技术重新定义开发流程,显著缩短应用构建时间并提高协作效率。其核心特性如“一键编程”和“快速迭代”降低了开发复杂度,提供了敏捷开发能力。可视化开发技术通过组件化设计、实时渲染、分布式协作等功能,实现了高效开发和跨平台适配。引擎优化方面,对SQL、功能、模板、图表和切面五大引擎进行了系统性升级,提升了性能和灵活性。此外,低代码平台还融合了AI技术,提供智能代码助手、故障排查、场景化推荐等智能化工具,进一步提升开发体验和效率。插件生态覆盖多行业场景,支持实时数据处理、AI模型训练、图像处理等多种扩展功能,满足不同业务需求。
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
人工智能在客服领域有哪些应用?
人工智能正在彻底改变着传统客服行业,它不仅拓展了业务边界,还推动着整个行业向更高效、更人性化方向迈进。
752 7
|
11月前
|
人工智能 供应链 搜索推荐
中国CRM市场深度分析:主流供应商排名与特点解析
随着中国企业数字化转型的深入,CRM(客户关系管理)软件市场迅速发展,形成了多个优秀解决方案提供商。销售易、纷享销客、明源云客、金蝶云之家、简道云、红圈营销和爱客CRM等供应商各具特色。销售易在大型企业市场表现突出,提供全链路营销销售一体化及强大的AI能力;纷享销客以易用性和高性价比著称,适合中小企业;明源云客专注房地产行业,提供全流程解决方案;金蝶云之家与ERP系统深度整合,适合传统制造业;简道云是低代码平台,灵活性高;红圈营销专注零售业,支持全渠道营销;爱客CRM则主打智能营销功能。企业在选择CRM时需综合考虑实施难度、价格定位、技术支持等因素,并结合自身需求进行试用和调研,确保选择最适合
|
监控 数据可视化 数据挖掘
成本累计曲线:项目预算的秘密武器
成本累计曲线(S曲线)是项目管理中用于分析和跟踪成本的重要工具,它随时间展示项目的累计成本或资源使用量,帮助项目经理实时了解成本支出和进度差异,及时调整预算和资源分配。本文详细介绍了S曲线的定义、关键步骤及在项目各阶段的应用,强调了项目管理工具在提高成本管理效率和准确性方面的辅助作用。
488 3
链动2+1模式开发规则分析:独特机制实现快速裂变
链动2+1模式是一种基于私域或社交电商的商业模式,通过“分享+邀请”机制设定代理和老板两种身份,结合直推奖、见点奖等多种奖励,促进用户裂变,快速扩大用户规模,同时确保团队稳定和用户体验。该模式规则简单,易于理解,具有快速裂变拓客、低门槛高收益及合规性保障等优势。
|
JavaScript 前端开发 UED
video标签里面的路径怎么填
video标签里面的路径怎么填
406 0
|
机器学习/深度学习 人工智能 搜索推荐
抖音上线AI社交APP“话炉”
【2月更文挑战第16天】抖音上线AI社交APP“话炉”
607 2
抖音上线AI社交APP“话炉”