- 浏览: 622273 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
xianzi_2008:
xianzi_2008 写道楼主请教下,我缓存了一个List& ...
Ehcache -
xianzi_2008:
楼主请教下,我缓存了一个List<Bean>对象, ...
Ehcache -
jsdsh:
收藏好.五个字
hibernate之one-to-many详细 -
Tlife:
好!!!!
hibernate------HQL总结 -
yanqingluo:
例子很恰当。
观察者模式
1.BeanUtils基本用法:
java 代码
- package com.beanutil;
- import java.util.Map;
- public class User {
- private Integer id;
- private Map map;
- private String username;
- public Integer getId() {
- return id;
- }
- public void setId(Integer id) {
- this.id = id;
- }
- public Map getMap() {
- return map;
- }
- public void setMap(Map map) {
- this.map = map;
- }
- public String getUsername() {
- return username;
- }
- public void setUsername(String username) {
- this.username = username;
- }
- }
java 代码
- public class Order {
- private User user;
- private Integer id;
- private String desc;
- public String getDesc() {
- return desc;
- }
- public void setDesc(String desc) {
- this.desc = desc;
- }
- public Integer getId() {
- return id;
- }
- public void setId(Integer id) {
- this.id = id;
- }
- public User getUser() {
- return user;
- }
- public void setUser(User user) {
- this.user = user;
- }
- }
java 代码
- import java.util.HashMap;
- import java.util.Map;
- import org.apache.commons.beanutils.BeanUtils;
- public class Test {
- private User user = new User();
- private Order order1 = new Order();
- private Order order2 = new Order();
- private Order order3 = new Order();
- private Map map = new HashMap();
- private User user1 = new User();
- public Test(){
- init();
- }
- public static void main(String[] args) throws Exception{
- Test test = new Test();
- //输出某个对象的某个属性
- System.out.println(BeanUtils.getProperty(test.user, "username"));
- //输出某个对象的内嵌属性,只要使用点号分隔
- System.out.println(BeanUtils.getProperty(test.order1, "user.username"));
- //BeanUtils还支持List和Map类型的属性,对于Map类型,则需要以"属性名(key值)"的
- //对于Indexed,则为"属性名[索引值]",注意对于ArrayList和数组都可以用一样的方式进行操作
- System.out.println(BeanUtils.getProperty(test.user1, "map(order2).desc"));
- //拷贝对象的属性值
- User tempUser = new User();
- BeanUtils.copyProperties(tempUser, test.user1);
- System.out.println(tempUser.getUsername());
- System.out.println(tempUser.getId());
- }
- //初始化
- public void init(){
- user.setId(0);
- user.setUsername("zhangshan");
- order1.setId(1);
- order1.setDesc("order1");
- order1.setUser(user);
- order2.setId(2);
- order2.setDesc("order2");
- order2.setUser(user);
- order3.setId(3);
- order3.setDesc("order3");
- order3.setUser(user);
- map.put("order1", order1);
- map.put("order2", order2);
- map.put("order3", order3);
- user1.setId(1);
- user1.setUsername("lisi");
- user1.setMap(map);
- }
- }
输出结果为:
zhangshan
zhangshan
order2
lisi
1
2. BeanCompartor 动态排序
A:动态设定Bean按照哪个属性来排序,而不再需要再实现bean的Compare接口进行复杂的条件判断
java 代码
- //动态设定Bean按照哪个属性来排序,而不再需要再实现bean的Compare接口进行复杂的条件判断
- List<order></order> list = new ArrayList<order></order>();
- list.add(test.order2);
- list.add(test.order1);
- list.add(test.order3);
- //未排序前
- for(Order order : list){
- System.out.println(order.getId());
- }
- //排序后
- Collections.sort(list, new BeanComparator("id"));
- for(Order order : list){
- System.out.println(order.getId());
- }
B:支持多个属性的复合排序
java 代码
- //支持多个属性的复合排序
- List <beancomparator></beancomparator> sortFields = new ArrayList<beancomparator></beancomparator>();
- sortFields.add(new BeanComparator("id"));
- sortFields.add(new BeanComparator("desc"));
- ComparatorChain multiSort = new ComparatorChain(sortFields);
- Collections.sort(list, multiSort);
- for(Order order : list){
- System.out.println(order.getId());
- }
C:使用ComparatorUtils进一步指定排序条件
上面的排序遇到属性为null就会抛出异常, 也不能设定升序还是降序。
不过,可以借助commons-collections包的ComparatorUtils
BeanComparator,ComparableComparator和ComparatorChain都是实现了Comparator这个接口
java 代码
- //上面的排序遇到属性为null就会抛出异常, 也不能设定升序还是降序。
- //不过,可以借助commons-collections包的ComparatorUtils
- //BeanComparator,ComparableComparator和ComparatorChain都是实现了Comparator这个接口
- Comparator mycmp = ComparableComparator.getInstance();
- mycmp = ComparatorUtils.nullLowComparator(mycmp); //允许null
- mycmp = ComparatorUtils.reversedComparator(mycmp); //逆序
- Comparator cmp = new BeanComparator("id", mycmp);
- Collections.sort(list, cmp);
- for(Order order : list){
- System.out.println(order.getId());
- }
发表评论
-
常用小代码段和开发经验收集
2011-04-21 14:47 981工作中用到的笔记,方便查找,不断补充。 1,截取过长的文字部分 ... -
java.lang.UnsupportedClassVersionError: Bad version number in .class file
2009-08-26 12:25 3897转载:http://www.blogjava.net/hwpo ... -
java调用dll(Eclipse+CDT+MinGW)
2009-03-06 15:25 6546第一步:配置环境 需要安装CDT和MinGW. CDT:因为 ... -
servlet2.5与el表达式
2008-11-23 15:23 2668Servlet2.4版本默认支持EL,如果在MyEclipse ... -
自定义ClassLoader遇到的问题
2008-09-16 16:47 15151.自定义的类加载器 package classloa ... -
自定义标签调用资源文件
2008-05-12 22:28 1962自定义标签处理类一般都继承TagSupport或BodyTag ... -
Failed to install Tomcat6 service(Tomcat6安装失败解决方法)
2008-05-06 16:24 11709转载 :http://www.handandaily.com/ ... -
tomcat5.5日志配置
2008-05-06 16:13 2523tomcat5.5日志配置: 从Tomcat5.5后,默认设置 ... -
java List<String>集合 传递值给js的数组
2008-04-21 18:12 5329<script> var intIndex= ... -
c3p0 com.mysql.jdbc.CommunicationsException异常
2008-02-18 17:32 6237使用c3p0,偶尔会报异常: 2008-02-18 10:52 ... -
Pattern Matcher
2008-02-18 10:30 1942package test; import java. ... -
FileUpload组件上传文件
2008-01-23 03:05 6703利用FileUpload组件上传文件,需要到apache上下载 ... -
hibernate大字段处理
2008-01-21 16:45 3206hibernate大字段处理:以mysql为例 比如传张图片, ... -
一个页面嵌套一个页面
2008-01-15 10:45 3541一个页面嵌套一个页面,比如a.jsp嵌套b.jsp那么可以用 ... -
java clone
2008-01-13 18:17 59501.java里的clone分为: A:浅复制(浅克隆): 浅复 ... -
修改Eclipse注释里的${Date}变量格式
2008-01-08 15:47 82151.eclipse3.3里${date}日期格 ... -
List移除元素
2008-01-05 16:16 24771. Iterator的remove()是移除从集合里取出来的 ... -
JDom处理xml
2008-01-05 13:51 21081.DOM的缺点主要是由于DOM是一个接口定义语言(IDL), ... -
观察者模式
2008-01-03 00:45 21371观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听 ... -
DelegatingRequestProcessor
2007-12-27 11:30 3691采用DelegatingRequestProcessor将处理 ...
相关推荐
此为BeanUtils的实例。其中apache的包有一个小的BUG已在其中说明。
httpclient 开发依赖的jar。 主要 org.apache.commons.beanutils.jar
import org.apache.commons.beanutils.PropertyUtilsBean; import org.apache.commons.lang.StringUtils; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; ...
jar包,官方版本,自测可用
import org.apache.commons.beanutils.PropertyUtilsBean; import org.apache.commons.lang.StringUtils; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; ...
org.apache.commons相关的所以jar包,包括commons-beanutils-1.8.0-bin.zip;commons-betwixt-0.8.zip;commons-cli-1.1.zip;commons-codec-1.3.zip;commons-collections-3.2.1-bin.zip;commons-digester-1.8.zip...
以下是压缩文件的jar包名称: commons-validator-1.3.0.jar commons-pool-1.3.jar ...commons-beanutils-1.6.jar 包含两个最常用的源码: commons-beanutils-1.6-src.zip commons-collections-3.2.1-src.zip
Apache Commons BeanUtils是Java开发中的一个非常重要的工具包,它属于Apache软件基金会的Commons项目。这个工具包提供了大量方便的API,极大地简化了JavaBean对象之间的属性操作,尤其是在处理复杂的对象模型和数据...
"org.apache.commons jar" 指的是这个项目中相关组件的集合,通常包含多个模块,每个模块专注于特定的编程任务。 1. **Apache Commons Lang**: 这个模块提供了许多高级字符串处理、日期和时间操作、数学计算以及...
这个"org.apache.commons.jar"包是Apache Commons项目的一部分,其中包含了该目录下的一系列资源文件,确保了功能的完整性和多样性。 Apache Commons库的核心理念是创建一系列高质量的、独立的、实用的Java类库,...
"org.apache.commons" 是这个项目的主要命名空间,包含了许多子包,用于实现各种实用功能。在这个压缩包中,你可能会找到如 Commons Lang、Commons IO、Commons Collections、Commons BeanUtils 等多个子项目的集合...
jar包,官方版本,自测可用
"org.apache.commons"是这个项目中的一个顶级命名空间,它包含了多个子模块,每个模块专注于特定的功能领域。 标题提及的 "org.apache.commons 的 jar 包源码" 指的是这个项目的源代码,开发者可以查看、学习和修改...
`org.apache.commons.fileupload.DiskFileUpload` 是 Apache Commons FileUpload 模块中的一个类,主要用于处理 HTTP 请求中的文件上传。这个类实现了基于磁盘的文件上传存储策略,当上传文件大小超过内存阈值时,它...
org.apache.commons 的经典jar 包 commons-beanutils-1.8.0-bin、 commons-betwixt-0.8、 commons-cli-1.1、 commons-codec-1.3、 commons-collections-3.2.1-bin、 commons-digester-1.8、 commons-...
包含: ...com.springsource.org.apache.commons.beanutils-1.8.0.jar, com.springsource.org.apache.commons.collections-3.2.1.jar, com.springsource.org.apache.commons.dbcp-1.2.2.osgi.jar, ...
... com.springsource.org.apache.axis-1.4.0.jar, com.springsource.org.apache.commons.beanutils-1.8.0.jar, com.springsource.org.apache.commons.collections-3.2.1.jar, ...
"org.apache.commons" 指的是 Apache Commons 项目下的顶级命名空间,包含了多个子模块,每个模块都专注于解决特定的问题或提供特定的功能。这个 jar 包是将这些功能集合在一起的便利工具,便于开发者集成到自己的 ...
jar包,官方版本,自测可用